diff --git a/System/Crontab/Crontab.php b/System/Crontab/Crontab.php index e52a8263..5c26ccc2 100644 --- a/System/Crontab/Crontab.php +++ b/System/Crontab/Crontab.php @@ -183,6 +183,10 @@ abstract class Crontab extends BaseObject private function recover() { $redis = Snowflake::app()->getRedis(); + if (!$redis->exists('stop:crontab:' . $this->getName())) { + $redis->del('stop:crontab:' . $this->getName()); + return; + } $redis->set('crontab:' . ($name = $this->getName()), swoole_serialize($this)); diff --git a/System/Crontab/Producer.php b/System/Crontab/Producer.php index c1805092..28ded719 100644 --- a/System/Crontab/Producer.php +++ b/System/Crontab/Producer.php @@ -52,6 +52,8 @@ class Producer extends Component { $redis = Snowflake::app()->getRedis(); + $redis->setex('stop:crontab:' . md5($name), 120, 1); + $redis->zRem(self::CRONTAB_KEY, $name); $redis->del('crontab:' . md5($name)); }