123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- <?php
- namespace app\listener\activity;
- use app\services\activity\seckill\StoreSeckillServices;
- use crmeb\interfaces\ListenerInterface;
- use crmeb\services\GroupDataService;
- use crmeb\utils\Cron;
- use think\facade\Log;
- class AutoSeckill extends Cron implements ListenerInterface
- {
-
- public function handle($event): void
- {
- $this->tick(2000, function () {
-
- $seckillService = app()->make(StoreSeckillServices::class);
- $seckillTime = GroupDataService::getData('routine_seckill_time') ?? [];
- try {
- foreach ($seckillTime as $item) {
- $res = $seckillService->cacheList((string)$item['id']);
- foreach ((array)$res as $value) {
- if (($value['stop_time'] + 86400) <= time()) {
- $seckillService->cacheDelById((int)$value['id']);
- }
- }
- }
- } catch (\Throwable $e) {
- Log::error('清除秒杀数据缓存失败:' . $e->getMessage() . '|file:' . $e->getFile());
- }
- });
- }
- }
|