6
0
Fork 0
release
李静 2022-01-20 20:32:40 +08:00
parent 00501f43d5
commit c2ad93ef57
3 changed files with 95 additions and 29 deletions

View File

@ -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);
}
}
}
}

View File

@ -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);
}
}
}

View File

@ -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