Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Как лучше организовать запуск PHP скриптов.
Новая тема
Ответить
цитата
01/12/15 в 15:11
Lexikon
Есть несколько задач:
1. Ежесуточное формирование файла статистики.
2. Создание и добавление новости из файла дампа каждый час.
3. Каждые пять минут отслеживать некие изменения.
И тут задался вопросом, дергать каждую из этих функций отдельным кроном либо дергать кроном каждые 5 минут, а в зависимости от меток в отдельных файлах, запускать все остальное.
Т.е. к примеру в сутках 1440 минут или 288 раз по 5 минут и 12 раз в часе.
Соответственно в каждом файле после запуска уменьшать значение на единицу и когда = 0 тогда записывать в файл максимальное значение и запускать скрипт.
Подскажите, как лучше.
И если кол-во задач увеличиться до 10.
Спасибо!
цитата
01/12/15 в 16:47
Ailk
использовать очереди собщений. RabbitMQ и совместно Celery, ну это продвинутый вариант.
Вариант попроще - Gearman
цитата
01/12/15 в 17:10
fil
А если по старинке запускать кроном каждые 5 минут. Делать что надо. И в самом скрипте проверять, если минуты=0 - делать ежечасную работу, если часы=0 и минуты=0 - ежесуточную.
цитата
01/12/15 в 18:13
rickdeckard
у вас же три задачи с разными промежутками времени
каждый день
каждый час
каждые пять минут
вот и поставьте на крон отдельные задачи и не забивайте голову ерундой.
цитата
01/12/15 в 18:53
Stek
Поставить в крон задания и не ломать себе голову. Чем проще, тем надежнее.
По заданию в файл делай.
цитата
01/12/15 в 23:22
Mika
Ailk писал:
использовать очереди собщений. RabbitMQ и совместно Celery, ну это продвинутый вариант.
Вариант попроще - Gearman
Ставить под такую задачу RabbitMQ с Celery - это извращение покруче стрельбы из пушки по воробьям.
+1 за повесить задания на крон.
Lexikon писал:
Т.е. к примеру в сутках 1440 минут или 288 раз по 5 минут и 12 раз в часе.
Соответственно в каждом файле после запуска уменьшать значение на единицу и когда = 0 тогда записывать в файл максимальное значение и запускать скрипт.
Ну а если хочется только один скрипт в крон добавить, то имхо проще для каждой задачи время последнего запуска сохранять.
цитата
02/12/15 в 11:45
Ailk
Mika писал:
Ставить под такую задачу RabbitMQ с Celery - это извращение покруче стрельбы из пушки по воробьям.
+1 за повесить задания на крон.
Да ладно. Десяток кронов на сайт не изврат? А если сайтов не 1?
цитата
02/12/15 в 12:48
w84me
анафига воротить комбайн, если крон создан под эти цели. и курл. или пых скрипт, который может дергать пачку сайтов...
речи по топ1млн алексы или какой хайлоад не было. кролик прям совсем перебор
цитата
02/12/15 в 13:37
Ailk
Получится ровно тот же самый самописный комбайн(не всмысле доступного функционала, а по сложности). Не лучше ли использовать специально разработанный и предназначенный для этого инструмент с необходимым контролем выполнения задач? К тому же поддерживаемый со стороны. Плюс автоматом снимаются головняки с поддержанием актуальности самописной системы.
цитата
02/12/15 в 14:03
Stek
celery стоит использовать если тебе в проекте нужно создавать очереди задач или подобное. Но использовать как крон -это действительно как по воробьям из пушки.
цитата
02/12/15 в 15:03
Ailk
но он сам себя позиционирует как "умная замена крону".
цитата
02/12/15 в 15:48
Stek
так я и не спорю, что экскаватор эффективнее лопаты. Но если надо ямки под саженцы рыть - то все таки лучше по старинке лопатой
цитата
02/12/15 в 19:15
Ailk
цитата
02/12/15 в 22:45
Mika
Ailk писал:
Да ладно. Десяток кронов на сайт не изврат? А если сайтов не 1?
А celery y у тебя наверное волшебным образом мысли читает и делает все, о чем подумаешь?
Ailk писал:
но он сам себя позиционирует как "умная замена крону".
Где? Смотрим
http://www.celeryproject.org/
Цитата:
Celery is an asynchronous task queue/job queue based on distributed message passing. It is focused on real-time operation, but
supports scheduling as well
.
Т.е. если в проекте используется celery, то можно его и в качестве планировщика заданий использовать, но чисто в качестве замены крону - это изврат.
цитата
03/12/15 в 01:05
Lexikon
Как только я начинаю считать себя охирительным программистом, вы начинаете говорить на непонятном мне языке и тут я понимаю, что нужно еще чуток подучиться
Решил дергать всё кроном и не ипать себе мозг
Всем спасибо!
цитата
03/12/15 в 10:57
Ailk
Mika писал:
Т.е. если в проекте используется celery, то можно его и в качестве планировщика заданий использовать, но чисто в качестве замены крону - это изврат.
Ващета крон и есть планировщик заданий
цитата
04/12/15 в 00:39
Mika
И где я утверждал обратное?
цитата
04/12/15 в 13:34
Ailk
а в чем смысл предложения тогда был? Можно использовать в качестве планировщика задач, но чисто в качестве замены планировщику задач - изврат
На любом сайте сложнее визитки можно найти применение очередей: массовая обработка контента(ресайз фоток, конверт видео, синонимайз и проч.), автопостинг, обработка и формирование статистики, учет(лайки, клики, просмотры), парсинг, мониторинг и т.д.
Конечно можно все это засунуть в 10 кронов. А можно красиво оформить в качестве отдельных воркеров и потом не плеваться от собственного говнокода.
цитата
04/12/15 в 13:53
rickdeckard
> На любом сайте сложнее визитки можно найти применение очередей: массовая обработка контента(ресайз фоток, конверт видео, синонимайз и проч.), автопостинг, обработка и формирование статистики, учет(лайки, клики, просмотры), парсинг, мониторинг и т.д.
можно но не нужно.
часть из этих задач я делаю через крон, без всяких celery, rabbitmq и прочего.
просто обработка разбивается на файлы - в каждом файле содержится пачка заданий например. по крону каждую минуту запускается обработчик который обрабатывает (с блокировкой от повторного запуска).
работает даже на виртуалхостингах.
Новая тема
Ответить
Эта страница в полной версии