diff --git a/Queue/Abstracts/Queue.php b/Queue/Abstracts/Queue.php index e8517bad..abbbfc20 100644 --- a/Queue/Abstracts/Queue.php +++ b/Queue/Abstracts/Queue.php @@ -47,24 +47,23 @@ abstract class Queue extends Component implements Relyon /** * @param $key - * @param Consumer $consumer + * @param string $consumer * @return false|int * @throws ComponentException * @throws Exception */ - protected function pop($key, Consumer $consumer) + protected function pop($key, string $consumer) { $redis = Snowflake::app()->getRedis(); try { - $serialize = serialize($consumer); - if (!$redis->lock($hash = md5($serialize))) { + if (!$redis->lock($hash = md5($consumer))) { return false; } - $isExists = $redis->zRevRank($key, $serialize); + $isExists = $redis->zRevRank($key, $consumer); if ($isExists === null) { return $redis->unlink($hash); } - $redis->zRem($key, $serialize); + $redis->zRem($key, $consumer); return $redis->unlink($hash); } finally { $redis->release(); diff --git a/Queue/Complete.php b/Queue/Complete.php index 6cfd8054..30b9171a 100644 --- a/Queue/Complete.php +++ b/Queue/Complete.php @@ -36,7 +36,7 @@ class Complete extends \Queue\Abstracts\Queue * @return false|int * @throws ComponentException */ - public function del(Consumer $consumer) + public function del(string $consumer) { return $this->pop(self::QUEUE_COMPLETE, $consumer); } diff --git a/Queue/Queue.php b/Queue/Queue.php index 1398e7f4..315ed692 100644 --- a/Queue/Queue.php +++ b/Queue/Queue.php @@ -116,19 +116,18 @@ class Queue extends \Snowflake\Process\Process */ private function runner(string $class) { - $logger = $this->application->getLogger(); try { $rely_on = unserialize($class); - $this->waiting->del($rely_on); + $this->waiting->del($class); if (!($rely_on instanceof Consumer)) { return; } $this->running->add($rely_on); $rely_on->onRunning(); } catch (\Throwable $exception) { - $logger->write($exception->getMessage(), 'queue'); + logger()->write($exception->getMessage(), 'queue'); } finally { - $this->running->del($rely_on); + $this->running->del($class); if (isset($rely_on) && $rely_on instanceof Consumer) { $rely_on->onComplete(); $this->complete->add($rely_on); diff --git a/Queue/Running.php b/Queue/Running.php index b3a19c35..1bf4165f 100644 --- a/Queue/Running.php +++ b/Queue/Running.php @@ -38,7 +38,7 @@ class Running extends \Queue\Abstracts\Queue * @return false|int * @throws ComponentException */ - public function del(Consumer $consumer) + public function del(string $consumer) { return $this->pop(self::QUEUE_RUNNING, $consumer); } diff --git a/Queue/Waiting.php b/Queue/Waiting.php index cf5e9df9..6b086218 100644 --- a/Queue/Waiting.php +++ b/Queue/Waiting.php @@ -37,7 +37,7 @@ class Waiting extends \Queue\Abstracts\Queue * @return false|int * @throws ComponentException */ - public function del(Consumer $consumer) + public function del(string $consumer) { return $this->pop(self::QUEUE_WAITING, $consumer); } diff --git a/function.php b/function.php index 5f8ecc8a..e8956c07 100644 --- a/function.php +++ b/function.php @@ -3,6 +3,8 @@ defined('APP_PATH') or define('APP_PATH', __DIR__ . '/../../'); use HttpServer\Http\Response; +use Snowflake\Error\Logger; +use Snowflake\Exception\ComponentException; use Snowflake\Snowflake; use HttpServer\Http\Context; use Snowflake\Core\ArrayAccess; @@ -45,6 +47,20 @@ if (!function_exists('exif_imagetype')) { } } + +if (!function_exists('logger')) { + + + /** + * @return Logger + * @throws ComponentException + */ + function logger() + { + return Snowflake::app()->getLogger(); + } +} + if (!function_exists('get_file_extension')) { function get_file_extension($filename)