34 lines
972 B
PHP
34 lines
972 B
PHP
|
|
<?php
|
|||
|
|
namespace app\job;
|
|||
|
|
|
|||
|
|
use think\queue\Job;
|
|||
|
|
|
|||
|
|
class SyncContentJob
|
|||
|
|
{
|
|||
|
|
public function fire(Job $job, $data)
|
|||
|
|
{
|
|||
|
|
try {
|
|||
|
|
// TODO: 在这里实现具体的同步逻辑
|
|||
|
|
// 1. 获取需要同步的数据
|
|||
|
|
// 2. 处理数据
|
|||
|
|
// 3. 更新到目标位置
|
|||
|
|
|
|||
|
|
// 如果任务执行成功,删除任务
|
|||
|
|
$job->delete();
|
|||
|
|
|
|||
|
|
// 记录日志
|
|||
|
|
\think\Log::info('内容库同步成功:' . json_encode($data));
|
|||
|
|
|
|||
|
|
} catch (\Exception $e) {
|
|||
|
|
// 如果任务执行失败,记录日志
|
|||
|
|
\think\Log::error('内容库同步失败:' . $e->getMessage());
|
|||
|
|
|
|||
|
|
// 如果任务失败次数小于3次,重新放入队列
|
|||
|
|
if ($job->attempts() < 3) {
|
|||
|
|
$job->release(60); // 延迟60秒后重试
|
|||
|
|
} else {
|
|||
|
|
$job->delete();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|