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