Люблю то, что делаю!
С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418
|
Добавлено: 01/12/15 в 15:11 |
Есть несколько задач:
1. Ежесуточное формирование файла статистики.
2. Создание и добавление новости из файла дампа каждый час.
3. Каждые пять минут отслеживать некие изменения.
И тут задался вопросом, дергать каждую из этих функций отдельным кроном либо дергать кроном каждые 5 минут, а в зависимости от меток в отдельных файлах, запускать все остальное.
Т.е. к примеру в сутках 1440 минут или 288 раз по 5 минут и 12 раз в часе.
Соответственно в каждом файле после запуска уменьшать значение на единицу и когда = 0 тогда записывать в файл максимальное значение и запускать скрипт.
Подскажите, как лучше.
И если кол-во задач увеличиться до 10.
Спасибо!
|
|
|
|
💀💀💀
С нами с 31.05.10
Сообщения: 4689
Рейтинг: 728
|
Добавлено: 01/12/15 в 16:47 |
использовать очереди собщений. RabbitMQ и совместно Celery, ну это продвинутый вариант.
Вариант попроще - Gearman
|
|
|
|
С нами с 16.10.02
Сообщения: 1448
Рейтинг: 1000
|
Добавлено: 01/12/15 в 17:10 |
А если по старинке запускать кроном каждые 5 минут. Делать что надо. И в самом скрипте проверять, если минуты=0 - делать ежечасную работу, если часы=0 и минуты=0 - ежесуточную.
|
|
|
|
С нами с 09.08.12
Сообщения: 185
Рейтинг: 378
|
Добавлено: 01/12/15 в 18:13 |
у вас же три задачи с разными промежутками времени
каждый день
каждый час
каждые пять минут
вот и поставьте на крон отдельные задачи и не забивайте голову ерундой.
|
|
|
|
www.phpdevs.com
С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105
|
Добавлено: 01/12/15 в 18:53 |
Поставить в крон задания и не ломать себе голову. Чем проще, тем надежнее.
По заданию в файл делай.
|
|
Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.
|
9
|
|
|
С нами с 18.10.02
Сообщения: 4165
Рейтинг: 3365
|
Добавлено: 01/12/15 в 23:22 |
Ailk писал: | использовать очереди собщений. RabbitMQ и совместно Celery, ну это продвинутый вариант.
Вариант попроще - Gearman |
Ставить под такую задачу RabbitMQ с Celery - это извращение покруче стрельбы из пушки по воробьям.
+1 за повесить задания на крон.
Lexikon писал: | Т.е. к примеру в сутках 1440 минут или 288 раз по 5 минут и 12 раз в часе.
Соответственно в каждом файле после запуска уменьшать значение на единицу и когда = 0 тогда записывать в файл максимальное значение и запускать скрипт. |
Ну а если хочется только один скрипт в крон добавить, то имхо проще для каждой задачи время последнего запуска сохранять.
|
|
|
|
💀💀💀
С нами с 31.05.10
Сообщения: 4689
Рейтинг: 728
|
Добавлено: 02/12/15 в 11:45 |
Mika писал: | Ставить под такую задачу RabbitMQ с Celery - это извращение покруче стрельбы из пушки по воробьям.
+1 за повесить задания на крон. |
Да ладно. Десяток кронов на сайт не изврат? А если сайтов не 1?
|
|
|
|
С нами с 23.03.03
Сообщения: 390
Рейтинг: 254
|
Добавлено: 02/12/15 в 12:48 |
анафига воротить комбайн, если крон создан под эти цели. и курл. или пых скрипт, который может дергать пачку сайтов...
речи по топ1млн алексы или какой хайлоад не было. кролик прям совсем перебор
|
|
|
|
💀💀💀
С нами с 31.05.10
Сообщения: 4689
Рейтинг: 728
|
Добавлено: 02/12/15 в 13:37 |
Получится ровно тот же самый самописный комбайн(не всмысле доступного функционала, а по сложности). Не лучше ли использовать специально разработанный и предназначенный для этого инструмент с необходимым контролем выполнения задач? К тому же поддерживаемый со стороны. Плюс автоматом снимаются головняки с поддержанием актуальности самописной системы.
|
|
|
|
www.phpdevs.com
С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105
|
Добавлено: 02/12/15 в 14:03 |
celery стоит использовать если тебе в проекте нужно создавать очереди задач или подобное. Но использовать как крон -это действительно как по воробьям из пушки.
|
|
Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.
|
7
|
|
|
💀💀💀
С нами с 31.05.10
Сообщения: 4689
Рейтинг: 728
|
Добавлено: 02/12/15 в 15:03 |
но он сам себя позиционирует как "умная замена крону".
|
|
|
|
www.phpdevs.com
С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105
|
Добавлено: 02/12/15 в 15:48 |
так я и не спорю, что экскаватор эффективнее лопаты. Но если надо ямки под саженцы рыть - то все таки лучше по старинке лопатой
|
|
Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.
|
9
|
|
|
💀💀💀
С нами с 31.05.10
Сообщения: 4689
Рейтинг: 728
|
Добавлено: 02/12/15 в 19:15 |
|
|
|
|
С нами с 18.10.02
Сообщения: 4165
Рейтинг: 3365
|
Добавлено: 02/12/15 в 22:45 |
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, то можно его и в качестве планировщика заданий использовать, но чисто в качестве замены крону - это изврат.
|
|
|
|
Люблю то, что делаю!
С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418
|
Добавлено: 03/12/15 в 01:05 |
Как только я начинаю считать себя охирительным программистом, вы начинаете говорить на непонятном мне языке и тут я понимаю, что нужно еще чуток подучиться
Решил дергать всё кроном и не ипать себе мозг
Всем спасибо!
|
|
|
|
💀💀💀
С нами с 31.05.10
Сообщения: 4689
Рейтинг: 728
|
Добавлено: 03/12/15 в 10:57 |
Mika писал: | Т.е. если в проекте используется celery, то можно его и в качестве планировщика заданий использовать, но чисто в качестве замены крону - это изврат. |
Ващета крон и есть планировщик заданий
|
|
|
|
С нами с 18.10.02
Сообщения: 4165
Рейтинг: 3365
|
Добавлено: 04/12/15 в 00:39 |
И где я утверждал обратное?
|
|
|
|
💀💀💀
С нами с 31.05.10
Сообщения: 4689
Рейтинг: 728
|
Добавлено: 04/12/15 в 13:34 |
а в чем смысл предложения тогда был? Можно использовать в качестве планировщика задач, но чисто в качестве замены планировщику задач - изврат
На любом сайте сложнее визитки можно найти применение очередей: массовая обработка контента(ресайз фоток, конверт видео, синонимайз и проч.), автопостинг, обработка и формирование статистики, учет(лайки, клики, просмотры), парсинг, мониторинг и т.д.
Конечно можно все это засунуть в 10 кронов. А можно красиво оформить в качестве отдельных воркеров и потом не плеваться от собственного говнокода.
|
|
|
|
С нами с 09.08.12
Сообщения: 185
Рейтинг: 378
|
Добавлено: 04/12/15 в 13:53 |
> На любом сайте сложнее визитки можно найти применение очередей: массовая обработка контента(ресайз фоток, конверт видео, синонимайз и проч.), автопостинг, обработка и формирование статистики, учет(лайки, клики, просмотры), парсинг, мониторинг и т.д.
можно но не нужно.
часть из этих задач я делаю через крон, без всяких celery, rabbitmq и прочего.
просто обработка разбивается на файлы - в каждом файле содержится пачка заданий например. по крону каждую минуту запускается обработчик который обрабатывает (с блокировкой от повторного запуска).
работает даже на виртуалхостингах.
|
|
|
|