|
@@ -26,6 +26,11 @@ class AccessTokenCron extends BaseJob
|
|
|
|
|
|
|
|
private bool $isRunning = false;
|
|
private bool $isRunning = false;
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 刷新 AccessToken 的计划执行时间
|
|
|
|
|
+ */
|
|
|
|
|
+ private int $scheduleRefreshTime = 0;
|
|
|
|
|
+
|
|
|
public function __construct(private MiniApp $miniApp)
|
|
public function __construct(private MiniApp $miniApp)
|
|
|
{
|
|
{
|
|
|
$this->accessToken = $this->miniApp->getAccessToken();
|
|
$this->accessToken = $this->miniApp->getAccessToken();
|
|
@@ -35,11 +40,14 @@ class AccessTokenCron extends BaseJob
|
|
|
#[Cron('0 0 */2 * * *', 'wechat.refreshMiniAppAccessToken')]
|
|
#[Cron('0 0 */2 * * *', 'wechat.refreshMiniAppAccessToken')]
|
|
|
public function refreshMiniAppAccessToken(): void
|
|
public function refreshMiniAppAccessToken(): void
|
|
|
{
|
|
{
|
|
|
- $expireIn = $this->execute();
|
|
|
|
|
- self::dispatch()->delay($expireIn - self::LEAD_TIME);
|
|
|
|
|
- Log::debug('定时刷新小程序 AccessToken 任务已启动,计划执行时间:{time}', [
|
|
|
|
|
- 'time' => date('Y-m-d H:i:s', time() + $expireIn - self::LEAD_TIME)
|
|
|
|
|
- ]);
|
|
|
|
|
|
|
+ if (time() > $this->scheduleRefreshTime) {
|
|
|
|
|
+ $expireIn = $this->execute();
|
|
|
|
|
+ self::dispatch()->delay($expireIn - self::LEAD_TIME);
|
|
|
|
|
+ $this->scheduleRefreshTime = time() + $expireIn - self::LEAD_TIME;
|
|
|
|
|
+ Log::debug('定时刷新小程序 AccessToken 任务已启动,计划执行时间:{time}', [
|
|
|
|
|
+ 'time' => date('Y-m-d H:i:s', $this->scheduleRefreshTime)
|
|
|
|
|
+ ]);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public function execute(): int
|
|
public function execute(): int
|