12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <?php
- namespace crmeb\jobs;
- use app\models\vote\Vote;
- use app\models\vote\VoteSub;
- use crmeb\interfaces\JobInterface;
- use think\facade\Db;
- use think\queue\Job;
- class VoteJob implements JobInterface
- {
- public function fire(Job $job, $data): void
- {
- $doDefaultJod = $data['method'] ?? null;
- $beforeMethod = $data['beforeMethod'] ?? null;
- $jobData = $data['data'] ?? null;
- $errorTimes = $data['errorTimes'] ?? 0;
- $release = $data['release'] ?? 0;
- if (method_exists($this, $beforeMethod)) {
- $isJobStillNeedToBeDone = $this->{$beforeMethod}($jobData);
- if ($isJobStillNeedToBeDone) {
- $job->delete();
- return;
- }
- }
- if (method_exists($this, $doDefaultJod)) {
- $isJobDone = $this->{$doDefaultJod}($jobData);
- if ($isJobDone) {
- $job->delete();
- return;
- } else {
- if ($job->attempts() > $errorTimes && $errorTimes) {
- $job->delete();
- return;
- } else {
- $job->release($release);
- }
- }
- }
- }
- public function doDefaultJod($data): bool
- {
- try {
- // var_dump(111);
- // exit;
- return VoteSub::doVote($data);
- //TODO 参加投票处理
- } catch (\Throwable $e) {
- }
- return true;
- }
- }
|