From 69732e01e123791191852a75aa29277a2c9f5a57 Mon Sep 17 00:00:00 2001 From: huangguancheng Date: Mon, 13 Jan 2025 17:26:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B9=BF=E5=91=8A=E8=B4=A6=E5=8F=B7=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=E5=8D=B3=E6=97=B6=E5=90=8C=E6=AD=A5=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/event/GoogleAdsCustomers.php | 1 + .../redis/GoogleAdsCustomerInitQueue.php | 50 +++++++++++++++++++ app/queue/redis/GoogleAdsCustomerQueue.php | 34 ++++++------- app/service/GoogleOAuthService.php | 11 ++-- 4 files changed, 75 insertions(+), 21 deletions(-) create mode 100644 app/queue/redis/GoogleAdsCustomerInitQueue.php diff --git a/app/event/GoogleAdsCustomers.php b/app/event/GoogleAdsCustomers.php index 65b0612..d9cd363 100644 --- a/app/event/GoogleAdsCustomers.php +++ b/app/event/GoogleAdsCustomers.php @@ -33,6 +33,7 @@ class GoogleAdsCustomers const event = 'googleads:customers:event'; const add_queue = 'googleads:customers:add:queue'; + const init_queue = 'googleads:customers:init:queue'; public function addCustomers() { diff --git a/app/queue/redis/GoogleAdsCustomerInitQueue.php b/app/queue/redis/GoogleAdsCustomerInitQueue.php new file mode 100644 index 0000000..66df2b6 --- /dev/null +++ b/app/queue/redis/GoogleAdsCustomerInitQueue.php @@ -0,0 +1,50 @@ +queue . ' consumed', $data); + //新绑定的客户,立即同步广告系列 + + Event::emit(GoogleAdsCampaigns::event, $data); + + //新绑定的客户,立即同步广告组 + Event::emit(GoogleAdsGroups::event, $data); + //新绑定的客户,立即同步广告 + Event::emit(GoogleAdsAds::event, $data); + //新绑定的客户,立即同步素材库 + Event::emit(GoogleAdsAssets::event, $data); + //新绑定的客户,立即同步素材关系绑定 + Event::emit(GoogleAdsAssetRelations::event, $data); + //新绑定的客户,立即同步最近3天的广告报表 + $data['date'] = date('Y-m-d', strtotime('-2 day')); + Event::emit(GoogleAdsDateDatas::event, $data); + $data['date'] = date('Y-m-d', strtotime('-1 day')); + Event::emit(GoogleAdsDateDatas::event, $data); + $data['date'] = date('Y-m-d', strtotime('0 day')); + Event::emit(GoogleAdsDateDatas::event, $data); + + + } + +} \ No newline at end of file diff --git a/app/queue/redis/GoogleAdsCustomerQueue.php b/app/queue/redis/GoogleAdsCustomerQueue.php index 88b294b..95223bf 100644 --- a/app/queue/redis/GoogleAdsCustomerQueue.php +++ b/app/queue/redis/GoogleAdsCustomerQueue.php @@ -27,23 +27,23 @@ class GoogleAdsCustomerQueue implements Consumer //新绑定的客户,立即同步广告系列 Event::emit(GoogleAdsCustomers::add_queue, $data); - Event::emit(GoogleAdsCampaigns::event, $data); - - //新绑定的客户,立即同步广告组 - Event::emit(GoogleAdsGroups::event, $data); - //新绑定的客户,立即同步广告 - Event::emit(GoogleAdsAds::event, $data); - //新绑定的客户,立即同步素材库 - Event::emit(GoogleAdsAssets::event, $data); - //新绑定的客户,立即同步素材关系绑定 - Event::emit(GoogleAdsAssetRelations::event, $data); - //新绑定的客户,立即同步最近3天的广告报表 - $data['date'] = date('Y-m-d', strtotime('-2 day')); - Event::emit(GoogleAdsDateDatas::event, $data); - $data['date'] = date('Y-m-d', strtotime('-1 day')); - Event::emit(GoogleAdsDateDatas::event, $data); - $data['date'] = date('Y-m-d', strtotime('0 day')); - Event::emit(GoogleAdsDateDatas::event, $data); +// Event::emit(GoogleAdsCampaigns::event, $data); +// +// //新绑定的客户,立即同步广告组 +// Event::emit(GoogleAdsGroups::event, $data); +// //新绑定的客户,立即同步广告 +// Event::emit(GoogleAdsAds::event, $data); +// //新绑定的客户,立即同步素材库 +// Event::emit(GoogleAdsAssets::event, $data); +// //新绑定的客户,立即同步素材关系绑定 +// Event::emit(GoogleAdsAssetRelations::event, $data); +// //新绑定的客户,立即同步最近3天的广告报表 +// $data['date'] = date('Y-m-d', strtotime('-2 day')); +// Event::emit(GoogleAdsDateDatas::event, $data); +// $data['date'] = date('Y-m-d', strtotime('-1 day')); +// Event::emit(GoogleAdsDateDatas::event, $data); +// $data['date'] = date('Y-m-d', strtotime('0 day')); +// Event::emit(GoogleAdsDateDatas::event, $data); } diff --git a/app/service/GoogleOAuthService.php b/app/service/GoogleOAuthService.php index dea1a3c..4fa7d18 100644 --- a/app/service/GoogleOAuthService.php +++ b/app/service/GoogleOAuthService.php @@ -6,7 +6,8 @@ use GuzzleHttp\Client; use think\facade\Db as ThinkDb; use app\model\ThirdUserAdvertiser; use app\model\ThirdUser; -//use Webman\RedisQueue\Redis; +use Webman\Event\Event; +use Webman\RedisQueue\Redis; use Webman\RedisQueue\Client as QueueClient; use app\event\GoogleAdsCustomers; @@ -211,6 +212,7 @@ class GoogleOAuthService $options = []; $options['refresh_token'] = $refreshToken; + Event::emit(GoogleAdsCustomers::add_queue, $data); $this->queue($options); } @@ -311,16 +313,17 @@ class GoogleOAuthService public function queue($options = []): string { // 队列名 - $queue = GoogleAdsCustomers::add_queue; +// $queue = GoogleAdsCustomers::add_queue; + $queue2 = GoogleAdsCustomers::init_queue; // 数据,可以直接传数组,无需序列化 // $options = ['to' => 'tom@gmail.com', 'content' => 'hello']; // 投递消息 // Redis::send($queue, $options['data']); - QueueClient::send($queue, $options); //异步投递 延后15秒 + QueueClient::send($queue2, $options); //异步投递 延后15秒 // 投递延迟消息,消息会在60秒后处理 // Redis::send($queue, $options['data'], 60); - return $queue.' redis queue ok'; + return $queue2.' redis queue ok'; }