no message
This commit is contained in:
parent
a3654b33ef
commit
aa809d41d1
@ -147,5 +147,6 @@ EOL;
|
||||
|
||||
// Run email queue
|
||||
$jobs->processEmailQueue();
|
||||
$jobs->processEmailQueue_bulk(); // 群发
|
||||
}
|
||||
}
|
||||
|
||||
@ -436,7 +436,7 @@ final class Cron
|
||||
}
|
||||
|
||||
DB::beginTransaction();
|
||||
$email_queues_raw = DB::select('SELECT * FROM email_queue LIMIT 1 FOR UPDATE SKIP LOCKED');
|
||||
$email_queues_raw = DB::select('SELECT * FROM email_queue where `type` is NULL LIMIT 1 FOR UPDATE SKIP LOCKED');
|
||||
|
||||
if (count($email_queues_raw) === 0) {
|
||||
DB::commit();
|
||||
@ -453,21 +453,21 @@ final class Cron
|
||||
if (Tools::isEmail($email_queue['to_email'])) {
|
||||
try {
|
||||
|
||||
if (isset($email_queue['type']) && $email_queue['type'] == "bulk") {
|
||||
Mail::send_bulk(
|
||||
$email_queue['to_email'],
|
||||
$email_queue['subject'],
|
||||
$email_queue['template'],
|
||||
json_decode($email_queue['array'])
|
||||
);
|
||||
} else {
|
||||
// if (isset($email_queue['type']) && $email_queue['type'] == "bulk") {
|
||||
// Mail::send_bulk(
|
||||
// $email_queue['to_email'],
|
||||
// $email_queue['subject'],
|
||||
// $email_queue['template'],
|
||||
// json_decode($email_queue['array'])
|
||||
// );
|
||||
// } else {
|
||||
Mail::send(
|
||||
$email_queue['to_email'],
|
||||
$email_queue['subject'],
|
||||
$email_queue['template'],
|
||||
json_decode($email_queue['array'])
|
||||
);
|
||||
}
|
||||
// }
|
||||
|
||||
} catch (Exception|ClientExceptionInterface $e) {
|
||||
echo $e->getMessage();
|
||||
@ -482,6 +482,68 @@ final class Cron
|
||||
echo Tools::toDateTime(time()) . ' 邮件队列处理完成' . PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
public static function processEmailQueue_bulk(): void
|
||||
{
|
||||
if ((new EmailQueue())->count() === 0) {
|
||||
echo Tools::toDateTime(time()) . ' 队列邮件队列为空' . PHP_EOL;
|
||||
} else {
|
||||
//记录当前时间戳
|
||||
$timestamp = time();
|
||||
//邮件队列处理
|
||||
while (true) {
|
||||
if (time() - $timestamp > 299) {
|
||||
echo Tools::toDateTime(time()) . '队列邮件队列处理超时,已跳过' . PHP_EOL;
|
||||
break;
|
||||
}
|
||||
|
||||
DB::beginTransaction();
|
||||
$email_queues_raw = DB::select('SELECT * FROM email_queue where `type` = "bulk" LIMIT 1 FOR UPDATE SKIP LOCKED');
|
||||
|
||||
if (count($email_queues_raw) === 0) {
|
||||
DB::commit();
|
||||
break;
|
||||
}
|
||||
|
||||
$email_queues = array_map(static function ($value) {
|
||||
return (array) $value;
|
||||
}, $email_queues_raw);
|
||||
$email_queue = $email_queues[0];
|
||||
echo '发送邮件至 ' . $email_queue['to_email'] . PHP_EOL;
|
||||
DB::delete('DELETE FROM email_queue WHERE id = ?', [$email_queue['id']]);
|
||||
|
||||
if (Tools::isEmail($email_queue['to_email'])) {
|
||||
try {
|
||||
|
||||
// if (isset($email_queue['type']) && $email_queue['type'] == "bulk") {
|
||||
Mail::send_bulk(
|
||||
$email_queue['to_email'],
|
||||
$email_queue['subject'],
|
||||
$email_queue['template'],
|
||||
json_decode($email_queue['array'])
|
||||
);
|
||||
// } else {
|
||||
// Mail::send(
|
||||
// $email_queue['to_email'],
|
||||
// $email_queue['subject'],
|
||||
// $email_queue['template'],
|
||||
// json_decode($email_queue['array'])
|
||||
// );
|
||||
// }
|
||||
|
||||
} catch (Exception|ClientExceptionInterface $e) {
|
||||
echo $e->getMessage();
|
||||
}
|
||||
} else {
|
||||
echo $email_queue['to_email'] . ' 邮箱格式错误,已跳过' . PHP_EOL;
|
||||
}
|
||||
|
||||
DB::commit();
|
||||
}
|
||||
|
||||
echo Tools::toDateTime(time()) . ' 群发邮件队列处理完成' . PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
// 激活订单
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user