Среда Godaddy
, виртуальный хостинг с использованием Linux
, Mysql
, php 7.2, laravel 5.7
.
Я не коснулся кода фреймворка.Я просто использовал документацию Laravel
для запуска команд ремесленников и регистрации информации.
Я создал cronjob
, который запускается каждые 5 минут, чтобы запускать планировщик для заданий электронной почты, который периодически отправляет письма на основе регистрации, дней рождения и других действий, а также резервное копирование БД 4 раза в день.Я получаю ошибки в файле журнала, описанном ниже:
production.ERROR: SQLSTATE [HY000]: общая ошибка: 2006 сервер MySQL исчез (SQL: выберите * из jobs
, где queue
= по умолчанию и ((reserved_at
равно нулю и available_at
<= отметка времени) или (<code>reserved_at <= отметка времени)) в порядке <code>id ограничение по возрастанию 1 для обновления).Временные метки разные, но запрос одинаковый.
production.ERROR: SQLSTATE [HY000] [2002] Не удается подключиться к локальному серверу MySQL через сокет '/var/lib/mysql/mysql.sock' (2){"исключение": "[объект] (исключение PDO (код: 2002): SQLSTATE [HY000] [2002] Не удается подключиться к локальному серверу MySQL через сокет '/var/lib/mysql/mysql.sock'
production.ERROR: вызов функции-члена beginTransaction () для null {"исключение": "[объект] Symfony \ Component \ Debug \ Exception \ FatalThrowableError (код: 0):
Нетиз запланированных задач были либо прерваны, либо не выполнены из-за какой-либо ошибки. Все эти запланированные задачи выполняются идеально. Пример: Когда я запрашиваю отправку по электронной почте, он публикуется в той же таблице заданий, и те же записи исчезают во флэш-памяти, и ядоставить почту в пункт назначения. Странно, я часто получаю эту ошибку в промежутке, когда не выполняются какие-либо действия или взаимодействие с приложением (имеется в виду, что никто не взаимодействует с приложением). Я не нахожу никаких проблемe с запросом, поскольку я выполнил тот же запрос в phpMyAdmin
, в моей локальной консоли или в MySQL workbench
.Это базовый запрос по умолчанию.
protected $commands = [
//
Commands\SendBirthdayEmail::class,
Commands\SendReminderEmail::class,
Commands\ManageLogs::class,
Commands\BackupDb::class,
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
$schedule->command('manage:logfiles')->weekly()->sundays()->at('01:15');
$schedule->command('backup:stdb')->dailyAt('01:20');
$schedule->command('backup:stdb')->dailyAt('05:20');
$schedule->command('email:birthday')->dailyAt('05:55');
$schedule->command('email:reminder')->dailyAt('06:00');
$schedule->command('backup:stdb')->dailyAt('13:45');
$schedule->command('backup:stdb')->dailyAt('19:20');
$schedule->command('backup:stdb')->dailyAt('21:20');
$schedule->command('queue:work --tries=3')->everyFiveMinutes();
}
Даже после этих записей (предположительно с состоянием потерянного соединения) следующая задача будет выполнена идеально, как нужно.
Я искал все, но не смог найти проблему с таблицей заданий, а также причину этих записей журнала.В качестве проблемного запроса всегда отображается одна и та же таблица заданий.