DevCraft Документации
РазработкиDatalife Engine (DLE)Re: Post - Пересылка новостейГайды

Cron RePost

Отложенная публикация идёт через авто-cron DLE, без патча корневого cron.php.

Настройки (RePost → Cron)

КлючСмыслDefault
cron_enabledШаблоны с флагом «В очередь cron» ставятся в очередь (режим «настройка шаблона» на форме)off
cron_newsСколько записей обработать за один проход5
cron_waittimeПауза между отправками (сек)2
cron_retry_intervalСдвиг planned при ошибке/таймауте (сек)300
cron_max_attemptsПосле N неудач → status=failed5
cron_autodeleteУдалять строку очереди после успехаon

У шаблона по-прежнему есть флаг В очередь cron — он учитывается только при cron_enabled и режиме defer = «настройка шаблона».

Как запускается

  1. В config.php DLE включён авто-cron ($config['cron']).
  2. При обычном хите сайта DLE вызывает engine/modules/cron.php.
  3. Плагин в конце успешного прохода вызывает repostRunCron()CronRunnerfindDuesendCronItem.

Корневой cron.php / cronmode=repost не используются и плагином не патчатся.

Форма новости

Над «Сохранить / Создать» (админка add/edit и frontend addnews):

  • Отложенная отправка: да / нет / настройка шаблона
  • Время: дата + время (пусто = due сразу)
  • Шаблоны: автоматически (matcher) или мультивыбор активных

POST: repost_defer, repost_plan_date, repost_plan_time, repost_tpl_mode, repost_tpl_ids[].

Очередь на каждый шаблон отдельно (unique template_id + news_id).

Retry

Ошибка или таймаут провайдера:

  1. attempts += 1
  2. last_error = текст ошибки
  3. если attempts < cron_max_attemptsplanned += cron_retry_interval, status=pending
  4. иначе → status=failed (больше не попадает в findDue)

Админка → Очередь: статус, попытки, ошибка; ручная отправка / удаление.

При удалении новости записи очереди для news_id очищаются автоматически.

On this page