|
...
|
...
|
@@ -82,12 +82,22 @@ class SyncSubmitTask extends Command |
|
|
|
public function getTaskId()
|
|
|
|
{
|
|
|
|
$task_id = Redis::rpop('sync_submit_task');
|
|
|
|
$lockKey = 'lock_sync_submit_task';
|
|
|
|
if (empty($task_id)) {
|
|
|
|
$ids = SyncSubmitTaskModel::where('status', 0)->limit(100)->pluck('id');
|
|
|
|
foreach ($ids as $id) {
|
|
|
|
Redis::lpush('sync_submit_task', $id);
|
|
|
|
// 获取锁
|
|
|
|
if (Redis::setnx($lockKey, 1)) {
|
|
|
|
// 设置锁的过期时间,防止死锁
|
|
|
|
Redis::expire($lockKey, 10);
|
|
|
|
$ids = SyncSubmitTaskModel::where('status', 0)->limit(100)->pluck('id');
|
|
|
|
foreach ($ids as $id) {
|
|
|
|
Redis::lpush('sync_submit_task', $id);
|
|
|
|
}
|
|
|
|
$task_id = Redis::rpop('sync_submit_task');
|
|
|
|
Redis::del($lockKey);
|
|
|
|
} else {
|
|
|
|
// 未获取到锁
|
|
|
|
return '';
|
|
|
|
}
|
|
|
|
$task_id = Redis::rpop('sync_submit_task');
|
|
|
|
}
|
|
|
|
return $task_id;
|
|
|
|
}
|
...
|
...
|
|