6
0
Fork 0
release
李静 2022-01-20 19:23:42 +08:00
parent 176dd172b8
commit 7164b2e311
8 changed files with 278 additions and 113 deletions

View File

@ -50,6 +50,7 @@ class AdminSendCoupon extends Command
*/ */
public function handle() public function handle()
{ {
while (true) {
//获取需要执行的任务数据包 //获取需要执行的任务数据包
$logs = CouponTaskLog::where('status', '0')->where('num', '>', 0)->orderBy('id')->limit($this->limit)->get(); $logs = CouponTaskLog::where('status', '0')->where('num', '>', 0)->orderBy('id')->limit($this->limit)->get();
$logs = $logs->groupBy('task_id'); $logs = $logs->groupBy('task_id');
@ -96,6 +97,8 @@ class AdminSendCoupon extends Command
} }
} }
$this->info('执行成功'); $this->info('执行成功');
return Command::SUCCESS;
sleep(60);
}
} }
} }

View File

@ -46,7 +46,7 @@ class OrderSettleCommand extends Command
DealerOrder::where([ DealerOrder::where([
'status' => DealerOrderStatus::Completed, 'status' => DealerOrderStatus::Completed,
'settle_state' => DealerOrderSettleState::Processed, 'settle_state' => DealerOrderSettleState::Processed,
])->whereNotNull('shippinged_time')->chunkById(200, function ($orders, &$page) { ])->whereNotNull('shippinged_time')->chunkById(200, function ($orders) use (&$page) {
$orders->load('dealer.userInfo'); $orders->load('dealer.userInfo');
foreach ($orders as $order) { foreach ($orders as $order) {

View File

@ -31,7 +31,7 @@ class OrderCloseExpiredCommand extends Command
while (true) { while (true) {
$page = 0; $page = 0;
Order::select('id')->expired()->chunkById(1000, function ($orders, &$page) { Order::select('id')->expired()->chunkById(1000, function ($orders) use (&$page) {
Order::whereIn('id', $orders->pluck('id')->all())->where('status', Order::STATUS_PENDING)->update([ Order::whereIn('id', $orders->pluck('id')->all())->where('status', Order::STATUS_PENDING)->update([
'status' => Order::STATUS_CANCELLED, 'status' => Order::STATUS_CANCELLED,
]); ]);
@ -44,7 +44,7 @@ class OrderCloseExpiredCommand extends Command
} elseif ($page === 1) { } elseif ($page === 1) {
sleep(30); sleep(30);
} else { } else {
sleep(60); sleep(15);
} }
} }
} }

View File

@ -29,10 +29,24 @@ class OrderCompleteCommand extends Command
*/ */
public function handle(OrderService $orderService) public function handle(OrderService $orderService)
{ {
Order::with('packages')->completable()->chunkById(200, function ($orders) use ($orderService) { while (true) {
$page = 0;
Order::with('packages')->completable()->chunkById(200, function ($orders) use ($orderService, &$page) {
foreach ($orders as $order) { foreach ($orders as $order) {
$orderService->confirm($order); $orderService->confirm($order);
} }
$page++;
}); });
if ($page === 0) {
sleep(60);
} elseif ($page === 1) {
sleep(30);
} else {
sleep(15);
}
}
} }
} }

View File

@ -37,7 +37,10 @@ class OrderRefundCommand extends Command
*/ */
public function handle() public function handle()
{ {
OrderRefundLog::pending()->chunkById(200, function ($logs) { while (true) {
$page = 0;
OrderRefundLog::pending()->chunkById(200, function ($logs) use (&$page) {
foreach ($logs as $log) { foreach ($logs as $log) {
try { try {
$method = 'refundBy'.Str::studly($log->order->pay_way); $method = 'refundBy'.Str::studly($log->order->pay_way);
@ -56,9 +59,18 @@ class OrderRefundCommand extends Command
]); ]);
} }
} }
$page++;
}); });
return 0; if ($page === 0) {
sleep(60);
} elseif ($page === 1) {
sleep(30);
} else {
sleep(15);
}
}
} }
/** /**

View File

@ -33,13 +33,16 @@ class OrderSettleCommand extends Command
*/ */
public function handle() public function handle()
{ {
while (true) {
$page = 0;
// 只查询可结算的订单,并且没有处理中的售后单 // 只查询可结算的订单,并且没有处理中的售后单
// 检查订单是否有未执行的分销任务 // 检查订单是否有未执行的分销任务
Order::whereDoesntHave('afterSales', function ($query) { Order::whereDoesntHave('afterSales', function ($query) {
return $query->processing(); return $query->processing();
})->whereDoesntHave('distributionPreIncomeJobs', function ($query) { })->whereDoesntHave('distributionPreIncomeJobs', function ($query) {
return $query->pending(); return $query->pending();
})->settlable()->chunkById(200, function ($orders) { })->settlable()->chunkById(200, function ($orders) use (&$page) {
$orders->load(['user', 'afterSales']); $orders->load(['user', 'afterSales']);
foreach ($orders as $order) { foreach ($orders as $order) {
@ -55,9 +58,18 @@ class OrderSettleCommand extends Command
report($e); report($e);
} }
} }
$page++;
}); });
return 0; if ($page === 0) {
sleep(60);
} elseif ($page === 1) {
sleep(30);
} else {
sleep(15);
}
}
} }
/** /**

View File

@ -34,7 +34,10 @@ class PushMessageCommand extends Command
*/ */
public function handle() public function handle()
{ {
PushMessageTask::with('message')->where('is_pushed', 0)->chunkById(100, function ($tasks) { while (true) {
$page = 0;
PushMessageTask::with('message')->where('is_pushed', 0)->chunkById(100, function ($tasks) use (&$page) {
$mallPushService = new MallUnipushService(); $mallPushService = new MallUnipushService();
$merchantPushService = new MerchantUnipushService(); $merchantPushService = new MerchantUnipushService();
foreach ($tasks as $task) { foreach ($tasks as $task) {
@ -63,7 +66,17 @@ class PushMessageCommand extends Command
report($th); report($th);
} }
} }
$page++;
}); });
return Command::SUCCESS;
if ($page === 0) {
sleep(60);
} elseif ($page === 1) {
sleep(30);
} else {
sleep(15);
}
}
} }
} }

111
worker.conf 100644
View File

@ -0,0 +1,111 @@
# 【批零】自动分配订单
[program:zcs-dealer-order-allocate]
process_name=%(program_name)s_%(process_num)02d
command=php /www/wwwroot/admin.zichunsheng.cn/current/artisan dealer:order-auto-allocate
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=deployer
numprocs=1
redirect_stderr=true
stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/dealer-order-allocate.log
stopwaitsecs=600
# 【批零】处理待结算的已付款订单
[program:zcs-dealer-order-process]
process_name=%(program_name)s_%(process_num)02d
command=php /www/wwwroot/admin.zichunsheng.cn/current/artisan dealer:order-process
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=deployer
numprocs=1
redirect_stderr=true
stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/dealer-order-process.log
stopwaitsecs=900
# 【批零】结算已完成的订单
[program:zcs-dealer-order-settle]
process_name=%(program_name)s_%(process_num)02d
command=php /www/wwwroot/admin.zichunsheng.cn/current/artisan dealer:order-settle
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=deployer
numprocs=1
redirect_stderr=true
stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/dealer-order-settle.log
stopwaitsecs=300
# 【商城】关闭过期订单
[program:order-close-expired]
process_name=%(program_name)s_%(process_num)02d
command=php /www/wwwroot/admin.zichunsheng.cn/current/artisan order:close-expired
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=deployer
numprocs=1
redirect_stderr=true
stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/order-close.log
stopwaitsecs=300
# 【商城】订单自动完成
[program:order-complete]
process_name=%(program_name)s_%(process_num)02d
command=php /www/wwwroot/admin.zichunsheng.cn/current/artisan order:complete
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=deployer
numprocs=1
redirect_stderr=true
stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/order-complete.log
stopwaitsecs=300
# 【商城】订单退款
[program:order-refund]
process_name=%(program_name)s_%(process_num)02d
command=php /www/wwwroot/admin.zichunsheng.cn/current/artisan order:refund
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=deployer
numprocs=1
redirect_stderr=true
stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/order-refund.log
stopwaitsecs=300
# 【商城】订单结算
[program:order-settle]
process_name=%(program_name)s_%(process_num)02d
command=php /www/wwwroot/admin.zichunsheng.cn/current/artisan order:settle
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=deployer
numprocs=1
redirect_stderr=true
stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/order-settle.log
stopwaitsecs=300
# 【商城】消息推送
[program:message-push]
process_name=%(program_name)s_%(process_num)02d
command=php /www/wwwroot/admin.zichunsheng.cn/current/artisan message:push
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=deployer
numprocs=1
redirect_stderr=true
stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/message-push.log
stopwaitsecs=300