Ubuntu Linux 22.04, Apache2, php7.4 Moodle 3.11
Хочу запускать время от времени задачку.
Возникло несколько вопросов:
- Для adhoc задач необходим crontab?
- Если необходим то crontab надо натравливать на admin/cli/adhoc_task.php или достаточно admin/cli/cron.php
И ещё такая штука
создан файл задачи /local/greetings/classes/task/fart.php
namespace local_greetings\task;
defined('MOODLE_INTERNAL') || die();
// Пример выполнения подзадачи в отдельном потоке
class Fart extends \core\task\adhoc_task {
public function execute () {
mtrace ( "Задача запущена ..." );
$i = 0; $i++;
mtrace ( "Задача завершена." );
}}
в главном файле модуля local/greetings/index.php пытаюсь создать задачу
// Создаём отложенную задачу
$task = new \local_greetings\task\Fart();
// добавить пользовательские данные
$task->set_custom_data ([
'context_id' => $context->id,
'text' => 'Трах - бабах!'
]);
// поставить в очередь
\core\task\manager :: queue_adhoc_task ( $task );
но выходит Исключение - Class 'local_greetings\task\Fart' not found
проблему решил добавив require_once ($CFG->dirroot.'/local/greetings/classes/task/fart.php');
Насколько я понимаю содержимое classes moodle должен подгружать автоматически. Нет?
И напоследок. Где и как можно проверить выполнилась задача или нет? В журнале задач никаких записей и упоминаний что была запущена такая задача нет. Надо понять где я могу посмотреть результат и как его можно формировать на основе собранных данных полученых в результате работы задачи.
Спасибо.