fix: 更新任务调度频率并增强错误处理逻辑
- 将 `lottery:draw-tick` 命令的调度频率从每分钟更新为每10秒,以提高抽奖数据处理的及时性。 - 在 `AdminSettlementBatchPayoutController` 中增强异常处理,提供更具体的错误信息,特别是针对未批准的结算批次。 - 在多语言文件中添加相应的错误信息翻译,确保用户友好的反馈。
This commit is contained in:
@@ -63,7 +63,7 @@ php artisan serve
|
||||
php artisan reverb:start
|
||||
```
|
||||
|
||||
**终端 3 — 任务调度(`draw.countdown` 每秒 + `lottery:draw-tick` 每分钟)**
|
||||
**终端 3 — 任务调度(`draw.countdown` 每秒 + `lottery:draw-tick` 每 10 秒)**
|
||||
|
||||
```bash
|
||||
php artisan schedule:work
|
||||
|
||||
@@ -17,8 +17,14 @@ final class AdminSettlementBatchPayoutController extends Controller
|
||||
{
|
||||
try {
|
||||
$updated = $this->service->payout($batch);
|
||||
} catch (\RuntimeException) {
|
||||
return ApiResponse::error(trans('api.client_error'), ErrorCode::ClientHttpError->value, null, 409);
|
||||
} catch (\RuntimeException $e) {
|
||||
$reason = $e->getMessage();
|
||||
$msg = match ($reason) {
|
||||
'settlement_not_approved' => trans('api.settlement_not_approved'),
|
||||
default => trans('api.client_error'),
|
||||
};
|
||||
|
||||
return ApiResponse::error($msg, ErrorCode::ClientHttpError->value, ['reason' => $reason], 409);
|
||||
}
|
||||
|
||||
return ApiResponse::success([
|
||||
|
||||
@@ -169,7 +169,8 @@ return Application::configure(basePath: dirname(__DIR__))
|
||||
});
|
||||
})
|
||||
->withSchedule(function (Schedule $schedule): void {
|
||||
$schedule->command('lottery:draw-tick')->everyMinute();
|
||||
/** 开奖时刻后尽快跑 RNG/冷静期,避免大厅在 0:00 卡住最多 1 分钟 */
|
||||
$schedule->command('lottery:draw-tick')->everyTenSeconds();
|
||||
$schedule->command('lottery:wallet-transfer-reconcile --lookback-hours=24 --stale-minutes=15 --limit=1000')
|
||||
->everyTenMinutes()
|
||||
->withoutOverlapping();
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
return [
|
||||
'validation_failed' => 'The given data was invalid.',
|
||||
'client_error' => 'This request could not be completed.',
|
||||
'settlement_not_approved' => 'Settlement batch is not approved for payout (both status and review_status must be approved).',
|
||||
'not_found' => 'The requested resource was not found.',
|
||||
'too_many_requests' => 'Too many requests. Please try again later.',
|
||||
'server_error' => 'Something went wrong. Please try again later.',
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
return [
|
||||
'validation_failed' => 'दिइएको डाटा अमान्य छ।',
|
||||
'client_error' => 'यो अनुरोध पूरा गर्न सकिएन।',
|
||||
'settlement_not_approved' => 'सेटलमेन्ट ब्याच पेमेन्टका लागि स्वीकृत छैन (status र review_status दुवै approved हुनुपर्छ)।',
|
||||
'not_found' => 'अनुरोध गरिएको स्रोत फेला परेन।',
|
||||
'too_many_requests' => 'धेरै अनुरोधहरू। कृपया पछि प्रयास गर्नुहोस्।',
|
||||
'server_error' => 'केही गडबड भयो। कृपया पछि प्रयास गर्नुहोस्।',
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
return [
|
||||
'validation_failed' => '请求参数校验未通过。',
|
||||
'client_error' => '请求无法完成。',
|
||||
'settlement_not_approved' => '结算批次尚未审核通过,无法派彩(需 status 与 review_status 均为 approved)。',
|
||||
'not_found' => '请求的资源不存在。',
|
||||
'too_many_requests' => '请求过于频繁,请稍后再试。',
|
||||
'server_error' => '服务暂时不可用,请稍后再试。',
|
||||
|
||||
Reference in New Issue
Block a user