Codeigniter - создание ручного планировщика

0

Я хочу создать планировщик в Codeigniter как в, в 21:24 "эта" запись должна быть обновлена.

Я много искал, но окончательным ответом было создание задания cron.

Могу ли я динамически создавать работу cron в Codeigniter?

На самом деле я думал создать класс, в котором метод будет продолжать проверять:

  1. Время.
  2. Все, что нужно обновить.

Как создать такую функцию наиболее эффективно, так как запрос может исходить от n количества пользователей в случайные моменты времени для выполнения определенной работы в разное время?

  • 0
    Могу ли я порекомендовать не использовать это для нормальной работы веб-сервера, написать отдельный исполняемый файл, который обрабатывает все сложности вашего планировщика, и добавить его в cron с периодом около 1 минуты?
  • 0
    да вот так я должен думать об этом .. спасибо Роберт .. :)
Теги:
codeigniter
cron
scheduled-tasks

2 ответа

1

Я бы не стал динамически создавать задания cron.

Вместо этого у меня будет один скрипт, который вызывается через cron один раз в минуту (один раз каждые 10 минут...) и сохраняет все задания в базе данных с момента их запуска.

Затем в вашем скрипте вы можете проверить базу данных и посмотреть, есть ли какие-либо задания, которые должны выполняться в это время точно или между временем последней проверки и теперь.

  • 0
    Если я использую это решение, мне нужно проверять свою базу данных каждые 10 секунд (она может даже уменьшиться в будущем). Теперь, если количество заданий увеличивается в течение указанного времени (скажем, это заняло более 10 секунд), как это повлияет на следующий триггер? .. Если это звучит, мне нужно быть более ясным в отношении моих основ, пожалуйста, дайте мне знать .. :)
  • 0
    Разве я не могу использовать EvTimer в моем случае? на самом деле я пытался EvTimerbut получил некоторые проблемы с установкой
0

Для создания задания CRON из PHP используйте команду exec. Это должно работать (непроверено, на мобильных устройствах)

exec(crontab -l | { cat; echo "0 0 0 0 0 php your_php_script.php"; } | crontab -);

Альтернативно, если вы хотите запланировать одну работу лучше для нас командой "at".

  • 0
    это будет работать на любой платформе?
  • 0
    Нет, вот только * nix. Вы должны быть в состоянии использовать функцию php exec () для планирования работы, используя версию cron для Windows. Не уверен синтаксис в строке cmd, но вы можете посмотреть в планировщике задач. Windows также имеет версию «в»

Ещё вопросы

Сообщество Overcoder
Наверх
Меню