Как создать задание cron без админки в Prestashop

Как создать задание cron без админки в Prestashop

27.04.2015 11:16:01 Просмотров 61 Источник

Я пытаюсь создать простое новое задание cron для моего модуля в Prestashop. Везде, где я вижу, чтобы сделать это, я должен определить свой cron в панели администратора. Но это кажется глупым, потому что я не буду писать каждому человеку, который загружает мой модуль, чтобы активировать этот cron вручную. Я написал cron jobs для wordpress и magento без проблем, но в Prestashop я не могу найти учебник, когда будет описан этот процесс. Можно ли написать и активировать cron автоматически?

Спасибо

У вопроса есть решение - Посмотреть?

Ответы - Как создать задание cron без админки в Prestashop / How to create cron job without admin panel in Prestashop

Menno Bieringa

28.09.2015 03:40:45

Следующее относится к "родному" обработчику cronjob Prestashop (версия 1.3.2)

Вы можете сделать свой модуль автоматической установкой cronjob, обеспечив следующее:

  1. Зарегистрируйтесь на крючок actionCronJob
  2. Предоставьте общедоступный метод getCronFrequency()
  3. Предоставьте общедоступный метод actionCronJob()

getCronFrequencyдолжен возвращать массив, который выглядит следующим образом:

array('hour'=>1, 'day'=>-1, 'month'=>-1, 'day_of_week'=>1);

Значения -1являются эквивалентом *в Unix-стиле cronjobs.

Однако имейте в виду, что задания cron в" базовом " режиме запускаются веб-сервисом, размещенным самим Prestashop. Это означает, что ваш сайт должен быть общедоступным, поэтому вы не можете легко проверить это в своей типичной среде разработки localhost.

Продвинутые cronjobs не зарегистрированы на веб-сервисе Prestashop, поэтому вы можете вызвать их самостоятельно через свой собственный менеджер crontab.

https://stackoverflow.com/questions/29890531/how-to-create-cron-job-without-admin-panel-in-prestashop/32823252#comment54608990_32823252
Модуль должен иметь 2 открытых метода: getCronFrequency и actionCronJob. Кроме того, обратите внимание, что в частоте, для "любого", вместо Unix-подобного " * " вы должны вернуть -1. Например, еженедельно будет return array('hour'=>1, 'day'=>-1, 'month'=>-1, 'day_of_week'=>1);
Закрыть X