diff --git a/app/Console/Commands/Distribution/PreIncomeJobCommand.php b/app/Console/Commands/Distribution/PreIncomeJobCommand.php index cc8939c4..d65d01db 100644 --- a/app/Console/Commands/Distribution/PreIncomeJobCommand.php +++ b/app/Console/Commands/Distribution/PreIncomeJobCommand.php @@ -36,7 +36,9 @@ class PreIncomeJobCommand extends Command public function handle(DistributionPreIncomeJobService $jobService) { while (true) { - DistributionPreIncomeJob::with('jobable')->pending()->chunkById(200, function ($jobs) use ($jobService) { + $page = 0; + + DistributionPreIncomeJob::with('jobable')->pending()->chunkById(200, function ($jobs) use ($jobService, &$page) { foreach ($jobs as $job) { try { DB::beginTransaction(); @@ -74,9 +76,17 @@ class PreIncomeJobCommand extends Command report($e); } } + + $page++; }); - sleep(5); + if ($page === 0) { + sleep(60); + } elseif ($page === 1) { + sleep(30); + } else { + sleep(15); + } } } } diff --git a/app/Console/Commands/Distribution/PreIncomeSettleCommand.php b/app/Console/Commands/Distribution/PreIncomeSettleCommand.php index cdb46e85..e456ad83 100644 --- a/app/Console/Commands/Distribution/PreIncomeSettleCommand.php +++ b/app/Console/Commands/Distribution/PreIncomeSettleCommand.php @@ -33,14 +33,17 @@ class PreIncomeSettleCommand extends Command */ public function handle(WalletService $walletService) { - DistributionPreIncome::processing()->chunkById(200, function ($preIncomes) use ($walletService) { - $preIncomes->load('user'); + while (true) { + $page = 0; - foreach ($preIncomes as $preIncome) { - try { - DB::beginTransaction(); + DistributionPreIncome::processing()->chunkById(200, function ($preIncomes) use ($walletService, &$page) { + $preIncomes->load('user'); - $walletService->changeBalance( + foreach ($preIncomes as $preIncome) { + try { + DB::beginTransaction(); + + $walletService->changeBalance( $preIncome->user, bcmul($preIncome->total_revenue, 100), WalletLog::ACTION_DISTRIBUTION_PRE_INCOME, @@ -48,34 +51,39 @@ class PreIncomeSettleCommand extends Command $preIncome ); - // 计算配额 - $changeQuota = bcmul($preIncome->total_revenue, app_settings('distribution.quota_v2_rate', 0), 4); - $changeQuota = round($changeQuota, 3); + // 计算配额 + $changeQuota = bcmul($preIncome->total_revenue, app_settings('distribution.quota_v2_rate', 0), 4); + $changeQuota = round($changeQuota, 3); - $preIncome->user->userInfo()->update([ + $preIncome->user->userInfo()->update([ 'quota_v2' => DB::raw("quota_v2+{$changeQuota}"), ]); - $preIncome->user->quotaLogs()->create([ + $preIncome->user->quotaLogs()->create([ 'loggable_id' => $preIncome->id, 'loggable_type' => $preIncome->getMorphClass(), 'change_quota' => $changeQuota, 'remarks' => $preIncome->type_text.'得配额', ]); - // 将预收益标记为已结算 - $preIncome->update([ + // 将预收益标记为已结算 + $preIncome->update([ 'completed_at' => now(), 'status' => DistributionPreIncome::STATUS_PROCESSED, ]); - DB::commit(); - } catch (Throwable $e) { - DB::rollBack(); + DB::commit(); + } catch (Throwable $e) { + DB::rollBack(); - report($e); + report($e); + } } - } - }); + + $page++; + }); + + sleep(60); + } } } diff --git a/worker.conf b/worker.conf index 76810936..4a56bdb1 100644 --- a/worker.conf +++ b/worker.conf @@ -9,7 +9,9 @@ killasgroup=true user=deployer numprocs=1 redirect_stderr=true -stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/dealer-order-allocate.log +stdout_logfile_maxbytes=10MB +stdout_logfile_backups=1 +stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/worker-dealer-order-allocate.log stopwaitsecs=600 # 【批零】处理待结算的已付款订单 @@ -23,7 +25,9 @@ killasgroup=true user=deployer numprocs=1 redirect_stderr=true -stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/dealer-order-process.log +stdout_logfile_maxbytes=10MB +stdout_logfile_backups=10 +stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/worker-dealer-order-process.log stopwaitsecs=900 # 【批零】结算已完成的订单 @@ -37,7 +41,9 @@ killasgroup=true user=deployer numprocs=1 redirect_stderr=true -stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/dealer-order-settle.log +stdout_logfile_maxbytes=10MB +stdout_logfile_backups=5 +stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/worker-dealer-order-settle.log stopwaitsecs=300 # 【商城】关闭过期订单 @@ -51,7 +57,9 @@ killasgroup=true user=deployer numprocs=1 redirect_stderr=true -stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/order-close.log +stdout_logfile_maxbytes=10MB +stdout_logfile_backups=1 +stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/worker-order-close.log stopwaitsecs=300 # 【商城】订单自动完成 @@ -65,7 +73,9 @@ killasgroup=true user=deployer numprocs=1 redirect_stderr=true -stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/order-complete.log +stdout_logfile_maxbytes=10MB +stdout_logfile_backups=1 +stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/worker-order-complete.log stopwaitsecs=300 # 【商城】订单退款 @@ -79,7 +89,9 @@ killasgroup=true user=deployer numprocs=1 redirect_stderr=true -stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/order-refund.log +stdout_logfile_maxbytes=10MB +stdout_logfile_backups=5 +stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/worker-order-refund.log stopwaitsecs=300 # 【商城】订单结算 @@ -93,7 +105,9 @@ killasgroup=true user=deployer numprocs=1 redirect_stderr=true -stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/order-settle.log +stdout_logfile_maxbytes=10MB +stdout_logfile_backups=5 +stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/worker-order-settle.log stopwaitsecs=300 # 【商城】消息推送 @@ -107,5 +121,39 @@ killasgroup=true user=deployer numprocs=1 redirect_stderr=true -stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/message-push.log +stdout_logfile_maxbytes=10MB +stdout_logfile_backups=1 +stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/worker-message-push.log +stopwaitsecs=300 + +# 【商城】预收益任务 +[program:zcs-pre-income-job] +process_name=%(program_name)s_%(process_num)02d +command=php /www/wwwroot/admin.zichunsheng.cn/current/artisan distribution:pre-income-job +autostart=true +autorestart=true +stopasgroup=true +killasgroup=true +user=deployer +numprocs=1 +redirect_stderr=true +stdout_logfile_maxbytes=10MB +stdout_logfile_backups=5 +stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/worker-pre-income-job.log +stopwaitsecs=300 + +# 【商城】预收益结算 +[program:zcs-pre-income-settle] +process_name=%(program_name)s_%(process_num)02d +command=php /www/wwwroot/admin.zichunsheng.cn/current/artisan distribution:pre-income-settle +autostart=true +autorestart=true +stopasgroup=true +killasgroup=true +user=deployer +numprocs=1 +redirect_stderr=true +stdout_logfile_maxbytes=10MB +stdout_logfile_backups=5 +stdout_logfile=/www/wwwroot/admin.zichunsheng.cn/current/storage/logs/worker-pre-income-settle.log stopwaitsecs=300