// +---------------------------------------------------------------------- namespace crmeb\jobs; use app\common\repositories\user\UserRepository; use app\common\repositories\wechat\WechatUserRepository; use crmeb\interfaces\JobInterface; use crmeb\services\WechatService; use think\queue\Job; class SendNewsJob implements JobInterface { public function fire($job, $data) { $wechatUserRepository = app()->make(WechatUserRepository::class); [$id, $news] = $data; if (!$id || !($openId = $wechatUserRepository->idByOpenId((int)$id))) { return $job->delete(); } try { WechatService::create()->staffTo($openId, WechatService::newsMessage($news)); } catch (\Exception $e) { $job->failed($e); } $job->delete(); } public function failed($data) { // TODO: Implement failed() method. } }