ЛАМПА: Как реализовать планирование? - PullRequest
2 голосов
/ 27 июля 2011

Пользователи моего приложения должны иметь возможность планировать выполнение определенной задачи в определенное время (например, только один раз, каждую минуту, каждый час и т. Д.).Мой план состоит в том, чтобы cron запускал скрипт каждую минуту, чтобы проверить приложение, чтобы увидеть, есть ли у него задачи для выполнения.Если это так, то выполните задачи.

Вопросы:

  1. Является ли выполнение cron каждую минуту хорошей идеей?
  2. Как моделировать в интервалах базы данныхкак cron (например, каждую минуту, 5-ю минуту каждого часа и т. д.)?

Я использую ЛАМПУ.

Ответы [ 2 ]

1 голос
/ 27 июля 2011

Или, вместо того, чтобы выполнять какую-либо реальную работу, просто создайте интерфейс для пользователей, а затем публикуйте записи в cron! Вместо того, чтобы cron звонил вам каждую минуту, пусть он вызывает скрипты в соответствии с указаниями пользователей. Когда они добавляют или меняют задания, переписывают crontab.

Ничего страшного.

В unix cron позволяет каждому пользователю (то есть, в качестве имени входа в Unix) иметь свой собственный crontab, так что вы можете иметь один, предназначенный для вашего приложения, для этого не нужно использовать корневой crontab.

0 голосов
/ 27 июля 2011

Вы имеете в виду, что у вас есть ряд пользовательских заданий, которые должны выполняться через определенные промежутки времени, и вы хотели бы, чтобы cron облегчил обработку этих заданий? Если это так, вы хотели бы иметь базу данных по крайней мере с 2 полями: РАБОТА, ЧАСТО

где OFTEN - это частота, с которой они хотели бы выполнить задание, используя синтаксис, аналогичный CRON.

Затем вам потребуется написать скрипт (на python, ruby ​​или другом подобном языке) для анализа этих данных. этот скрипт будет запускаться каждую минуту через ваш текущий cron.

взгляните на этот вопрос StackOverflow и этот вопрос StackOverflow относительно того, как анализировать данные crontab через python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...