From 2ee4ca5ed2d23b5441d8d8249a78ae76be9578a9 Mon Sep 17 00:00:00 2001 From: Lkeme <19500576+lkeme@users.noreply.github.com> Date: Sat, 8 Apr 2023 12:55:12 +0800 Subject: [PATCH] [fix] Corrected Version fixed #209 --- composer.json | 15 +++++++-------- plugin/Login/Login.php | 1 + src/Task/Task.php | 16 +++++++++------- src/TaskQueue/TaskQueue.php | 2 -- src/TimeLock/TimeLock.php | 19 +++++++++---------- 5 files changed, 26 insertions(+), 27 deletions(-) diff --git a/composer.json b/composer.json index a46348e..b6ffb0c 100644 --- a/composer.json +++ b/composer.json @@ -37,21 +37,20 @@ "ext-json": "*", "ext-zlib": "*", "ext-mbstring": "*", - "monolog/monolog": "2.x-dev", + "monolog/monolog": "dev-main", "bramus/monolog-colored-line-formatter": "dev-master", - "symfony/yaml": "6.1.x-dev", + "symfony/yaml": "^6.0", "toolkit/stdlib": "*", "adhocore/cli": "dev-main", "lkeme/data": "4.x-dev", "grasmash/expander": "dev-main", - "amphp/amp": "^2.6.2", + "amphp/amp": "3.x-dev", "fire015/flintstone": "dev-master", "overtrue/pinyin": "dev-master", - "guzzlehttp/guzzle": "^7.4", - "toolkit/pflag": "^2.0", - "symfony/console": "^6.1", - "malios/php-to-ascii-table": "^3.0", - "clue/socket-raw": "1.6" + "guzzlehttp/guzzle": "dev-master", + "toolkit/pflag": "dev-main", + "symfony/console": "^6.0", + "malios/php-to-ascii-table": "dev-master" }, "autoload": { "psr-4": { diff --git a/plugin/Login/Login.php b/plugin/Login/Login.php index 3a26d94..dd12e51 100644 --- a/plugin/Login/Login.php +++ b/plugin/Login/Login.php @@ -594,6 +594,7 @@ class Login extends BasePlugin * @param string $cid * @param string $validate * @param string $challenge + * @param string $recaptcha_token * @return array */ protected function sendSms(string $phone, string $cid, string $validate = '', string $challenge = '', string $recaptcha_token = ''): array diff --git a/src/Task/Task.php b/src/Task/Task.php index a5e76b7..a8803d2 100644 --- a/src/Task/Task.php +++ b/src/Task/Task.php @@ -17,24 +17,26 @@ namespace Bhp\Task; -use Amp\Loop; +use Amp\Future; use Bhp\Log\Log; use Bhp\Plugin\Plugin; use Bhp\Schedule\Schedule; -use Bhp\TimeLock\TimeLock; use Bhp\Util\DesignPattern\SingleTon; use Bhp\Util\Exceptions\NoLoginException; use Throwable; -use function Amp\asyncCall; +use function Amp\async; +use function Amp\delay; + class Task extends SingleTon { + private static array $promises; + /** * @return void */ public function init(): void { - } /** @@ -44,7 +46,7 @@ class Task extends SingleTon */ public static function addTask(string $hook, mixed ...$data): void { - asyncCall(function () use ($hook, $data) { + self::$promises[] = async(function () use ($hook, $data) { while (true) { try { Plugin::getInstance()->trigger($hook, ...$data); @@ -59,7 +61,7 @@ class Task extends SingleTon Log::error($error_msg); // Notice::push('error', $error_msg); } - yield TimeLock::Delayed(); + delay(1); } }); } @@ -69,7 +71,7 @@ class Task extends SingleTon */ public static function execTasks(): void { - Loop::run(); + Future\awaitAll(self::$promises); } } diff --git a/src/TaskQueue/TaskQueue.php b/src/TaskQueue/TaskQueue.php index 22c1f26..c27464a 100644 --- a/src/TaskQueue/TaskQueue.php +++ b/src/TaskQueue/TaskQueue.php @@ -17,7 +17,6 @@ namespace Bhp\TaskQueue; -use Amp\Delayed; use Bhp\Util\DesignPattern\SingleTon; class TaskQueue extends SingleTon @@ -92,7 +91,6 @@ class TaskQueue extends SingleTon /** * 获取调用者类名 - * @param int $index * @return string */ protected function getCallClassName(): string diff --git a/src/TimeLock/TimeLock.php b/src/TimeLock/TimeLock.php index 220deab..41f0388 100644 --- a/src/TimeLock/TimeLock.php +++ b/src/TimeLock/TimeLock.php @@ -17,7 +17,6 @@ namespace Bhp\TimeLock; -use Amp\Delayed; use Bhp\Schedule\Schedule; use Bhp\Util\DesignPattern\SingleTon; @@ -106,15 +105,15 @@ class TimeLock extends SingleTon return $this->locks[$class_name]; } - /** - * used in Amp loop Delayed - * @param int $times - * @return Delayed - */ - public static function Delayed(int $times=1000): Delayed - { - return new Delayed($times); - } +// /** +// * used in Amp loop Delayed +// * @param int $times +// * @return Delayed +// */ +// public static function Delayed(int $times=1000): Delayed +// { +// return new Delayed($times); +// } /** * 定时