| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358 |
- <?php
- declare(strict_types=1);
- namespace App\Repositories\Service;
- use App\Jobs\AddExchangeCodeJob;
- use App\Jobs\AddHomeJob;
- use App\Jobs\AddHyperLogLogJob;
- use App\Jobs\AddPaymentResultJob;
- use App\Jobs\AddPayNotifyJob;
- use App\Jobs\AddRegisterJob;
- use App\Jobs\AddShiftVideoJob;
- use App\Jobs\AgentOrderIncJob;
- use App\Jobs\AgentUserLoginJob;
- use App\Jobs\AgentUserRegistJob;
- use App\Jobs\CrashLogJob;
- use App\Jobs\CreateUserRelationJob;
- use App\Jobs\GetPayTradeNoJob;
- use App\Jobs\InviteUserJob;
- use App\Jobs\PublicSendTgMegJob;
- use App\Jobs\RebateTwoUserJob;
- use App\Jobs\RebateUserJob;
- use App\Jobs\RefreshLoginTimeJob;
- use App\Jobs\SaveChangeLogJob;
- use App\Jobs\SaveChatRecordJob;
- use App\Jobs\SaveUserChatRecordJob;
- use App\Jobs\SendSignInRewardsJob;
- use App\Jobs\SentTaskRewardJob;
- use App\Jobs\TimeTaskSendRewardJob;
- use App\Jobs\VideoLikeJob;
- use Hyperf\AsyncQueue\Driver\DriverFactory;
- use Hyperf\AsyncQueue\Driver\DriverInterface;
- class QueueService
- {
- /**
- * @var DriverInterface
- */
- protected $driver;
- public function __construct(DriverFactory $driverFactory)
- {
- $this->driver = $driverFactory->get('default');
- }
- /**
- * 将app崩溃日志加入队列.
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function crashLogPush(array $params, int $delay = 0): bool
- {
- // 这里的 `CrashLogJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new CrashLogJob($params), $delay);
- }
- /**
- * 更新上次登陆时间.
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function refreshLoginTimePush(array $params, int $delay = 0): bool
- {
- // 这里的 `RefreshLoginTimeJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new RefreshLoginTimeJob($params), $delay);
- }
- /**
- * 异步统计日活.
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function addHyperLogLogJob(array $params, int $delay = 0): bool
- {
- // 这里的 `AddHyperLogLogJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new AddHyperLogLogJob($params), $delay);
- }
- /**
- * 异步记录兑换码-兑换记录.
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function addExchangeCodeJob(array $params, int $delay = 0): bool
- {
- // 这里的 `AddExchangeCodeJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new AddExchangeCodeJob($params), $delay);
- }
- /**
- * 异步记录支付返回支付通道.
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function addPaymentResultJob(array $params, int $delay = 0): bool
- {
- // 这里的 `AddPaymentResultJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new AddPaymentResultJob($params), $delay);
- }
- /**
- * 异步记录支付回调.
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function addPayNotifyJob(array $params, int $delay = 0): bool
- {
- // 这里的 `AddPayNotifyJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new AddPayNotifyJob($params), $delay);
- }
- /**
- * 异步更改点赞情况.
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function addVideoLikeJob(array $params, int $delay = 0): bool
- {
- // 这里的 `VideoLikeJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new VideoLikeJob($params), $delay);
- }
- /**
- * 异步添加注册情况.
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function addRegisterJob(array $params, int $delay = 0): bool
- {
- // 这里的 `AddRegisterJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new AddRegisterJob($params), $delay);
- }
- /**
- * 异步视频转码.
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function addShiftVideoJob(array $params, int $delay = 0): bool
- {
- // 这里的 `AddShiftVideoJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new AddShiftVideoJob($params), $delay);
- }
- /**
- * 异步发布首页视频.
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function addHomeVideoJob(array $params, int $delay = 0): bool
- {
- // 这里的 `AddHomeJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new AddHomeJob($params), $delay);
- }
- /**
- * 异步发放签到奖励
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function sendSignInRewardsJob(array $params, int $delay = 0): bool
- {
- // 这里的 `SendSignInRewardsJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new SendSignInRewardsJob($params), $delay);
- }
- /**
- * 异步发放任务奖励奖励
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function sentTaskRewardJob(array $params, int $delay = 0): bool
- {
- // 这里的 `SentTaskRewardJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new SentTaskRewardJob($params), $delay);
- }
- /**
- * 异步创建用户等级关系
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function createUserRelationJob(array $params, int $delay = 0): bool
- {
- // 这里的 `CreateUserRelationJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new CreateUserRelationJob($params), $delay);
- }
- /**
- * 异步计算返佣奖励
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function rebateUserJob(array $params, int $delay = 0): bool
- {
- // 这里的 `RebateUserJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new RebateUserJob($params), $delay);
- }
- /**
- * 异步计算返佣奖励第二版
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function rebateTwoUserJob(array $params, int $delay = 0): bool
- {
- // 这里的 `RebateUserJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new RebateTwoUserJob($params), $delay);
- }
- /**
- * 异步代理系统登陆
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function agentUserLoginJob(array $params, int $delay = 0): bool
- {
- // 这里的 `AgentUserLoginJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new AgentUserLoginJob($params), $delay);
- }
- /**
- * 异步代理系统注册
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function agentUserRegistJob(array $params, int $delay = 0): bool
- {
- // 这里的 `AgentUserRegistJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new AgentUserRegistJob($params), $delay);
- }
- /**
- * 异步代理系统新增订单
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function agentOrderIncJob(array $params, int $delay = 0): bool
- {
- // 这里的 `AgentOrderIncJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new AgentOrderIncJob($params), $delay);
- }
- /**
- * 异步发放限时奖励任务
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function timeTaskSendRewardJob(array $params, int $delay = 0): bool
- {
- // 这里的 `TimeTaskSendRewardJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new TimeTaskSendRewardJob($params), $delay);
- }
- /**
- * 异步获取支付方流水订单号
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function getPayTradeNoJob(array $params, int $delay = 0): bool
- {
- // 这里的 `TimeTaskSendRewardJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new GetPayTradeNoJob($params), $delay);
- }
- /**
- * 保存聊天记录
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function saveChatRecord(array $params, int $delay = 0): bool
- {
- // 这里的 `TimeTaskSendRewardJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new SaveChatRecordJob($params), $delay);
- }
- /**
- * 保存用户聊天记录
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function saveUserChatRecord(array $params, int $delay = 0): bool
- {
- // 这里的 `TimeTaskSendRewardJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new SaveUserChatRecordJob($params), $delay);
- }
- /**
- * 发送聊天记录到tg
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function publicSendTgMegJob(array $params, int $delay = 0): bool
- {
- // 这里的 `TimeTaskSendRewardJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new PublicSendTgMegJob($params), $delay);
- }
- /**
- * 保存帐变记录
- * @param array $params 数据
- * @param int $delay 延时时间 单位秒
- */
- public function saveChangeLogJob(array $params, int $delay = 0): bool
- {
- // 这里的 `TimeTaskSendRewardJob` 会被序列化存到 Redis 中,所以内部变量最好只传入普通数据
- // 同理,如果内部使用了注解 @Value 会把对应对象一起序列化,导致消息体变大。
- // 所以这里也不推荐使用 `make` 方法来创建 `Job` 对象。
- return $this->driver->push(new SaveChangeLogJob($params), $delay);
- }
- }
|