fixed:修复定时任务立即执行导致任务执行混乱
This commit is contained in:
parent
d8496f9e62
commit
84c85c3d12
@ -96,13 +96,14 @@ class ScheduleCommand extends Command
|
||||
{
|
||||
$executeAbleCommands = [];
|
||||
|
||||
|
||||
Crontab::where('status', Crontab::ENABLE)
|
||||
->where('tactics', '<>', Crontab::EXECUTE_FORBIDDEN)
|
||||
->select()
|
||||
->each(function ($command) use (&$executeAbleCommands){
|
||||
if ($command->tactics == Crontab::EXECUTE_IMMEDIATELY) {
|
||||
$executeAbleCommands[] = $command;
|
||||
return true;
|
||||
$command->tactics = Crontab::EXECUTE_NORMAL;
|
||||
return $command->save();
|
||||
}
|
||||
|
||||
$can = date('Y-m-d H:i',
|
||||
@ -113,9 +114,8 @@ class ScheduleCommand extends Command
|
||||
if ($can) {
|
||||
// 如果任务只执行一次 之后禁用该任务
|
||||
if ($command->tactics === Crontab::EXECUTE_ONCE) {
|
||||
Crontab::where('id', $command->id)->update([
|
||||
'status' => Crontab::DISABLE,
|
||||
]);
|
||||
$command->tactics = Crontab::DISABLE;
|
||||
$command->save();
|
||||
}
|
||||
|
||||
$executeAbleCommands[] = $command;
|
||||
|
@ -47,7 +47,7 @@ class Crontab extends CatchController
|
||||
*/
|
||||
public function save(Request $request)
|
||||
{
|
||||
CronExpression::factory($request->post('cron'));
|
||||
new CronExpression($request->post('cron'));
|
||||
|
||||
return CatchResponse::success($this->model->storeBy($request->post()));
|
||||
}
|
||||
@ -73,7 +73,7 @@ class Crontab extends CatchController
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
CronExpression::factory($request->post('cron'));
|
||||
new CronExpression($request->post('cron'));
|
||||
|
||||
return CatchResponse::success($this->model->updateBy($id, $request->post()));
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ class Crontab extends Migrator
|
||||
->addColumn('group', 'boolean', ['null' => false,'default' => 1,'signed' => false,'comment' => '1 默认 2 系统',])
|
||||
->addColumn('task', 'string', ['limit' => 255,'null' => false,'default' => '','signed' => false,'comment' => '任务名称',])
|
||||
->addColumn('cron', 'string', ['limit' => 50,'null' => false,'default' => '','signed' => false,'comment' => 'cron 表达式',])
|
||||
->addColumn('tactics', 'boolean', ['null' => false,'default' => 1,'signed' => false,'comment' => '1 立即执行 2 执行一次 3 放弃执行',])
|
||||
->addColumn('tactics', 'boolean', ['null' => false,'default' => 1,'signed' => false,'comment' => '1 立即执行 2 执行一次 3 正常执行',])
|
||||
->addColumn('status', 'boolean', ['null' => false,'default' => 1,'signed' => false,'comment' => '1 正常 2 禁用',])
|
||||
->addColumn('remark', 'string', ['limit' => 1000,'null' => false,'default' => '','signed' => false,'comment' => '备注',])
|
||||
->addColumn('creator_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR,'null' => false,'default' => 0,'signed' => true,'comment' => '创建人ID',])
|
||||
|
@ -38,6 +38,5 @@ class Crontab extends Model
|
||||
|
||||
const EXECUTE_IMMEDIATELY = 1; // 立即执行
|
||||
const EXECUTE_ONCE = 2; // 执行一次
|
||||
const EXECUTE_FORBIDDEN = 3; // 停止执行
|
||||
|
||||
const EXECUTE_NORMAL = 3; // 正常执行
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user