修改Whatshub工单的完成数量总计的计算方法
This commit is contained in:
Regular → Executable
+6
-1
@@ -56,6 +56,9 @@ class SplitNumberRatioDeferredService
|
||||
/**
|
||||
* 同步侧:根据 visit / inbound 与上次同步检查点重算 streak
|
||||
*
|
||||
* 访问侧(recordVisitAfterRedirect)已按次 +1 累计 streak,此处不得再叠加 delta,否则首次同步会双倍计次导致提前关号。
|
||||
* 取 max(访问侧 streak, 自上次同步以来的点击增量) 作为裁决值,并兜底访问钩子未触发的场景。
|
||||
*
|
||||
* @param array<string, mixed>|Number $number
|
||||
*/
|
||||
public function computeStreakForSync($number, int $currentStreak): int
|
||||
@@ -74,7 +77,9 @@ class SplitNumberRatioDeferredService
|
||||
}
|
||||
|
||||
if ($visitCount > $lastVisit) {
|
||||
return $currentStreak + ($visitCount - $lastVisit);
|
||||
$deltaSinceSync = $visitCount - $lastVisit;
|
||||
|
||||
return max($currentStreak, $deltaSinceSync);
|
||||
}
|
||||
|
||||
return $currentStreak;
|
||||
|
||||
Regular → Executable
Regular → Executable
Executable → Regular
+1
-2
@@ -36,12 +36,11 @@ class SplitScrmSpiderFactory
|
||||
/**
|
||||
* API 优先同步类型:常态走 PHP cURL,不占 Node Real Browser 槽位
|
||||
*
|
||||
* 调度层据此跳过 Node 队列门禁并允许并行投递;蜘蛛实现本身不在此修改。
|
||||
* Whatshub 已改为混合同步(cURL 号码 + Node statistics),需走 Node 队列门禁。
|
||||
*
|
||||
* @var list<string>
|
||||
*/
|
||||
private const API_FIRST_SYNC_TYPES = [
|
||||
'whatshub',
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
Regular → Executable
+2
-14
@@ -373,13 +373,11 @@ class SplitTicketSyncDispatchService
|
||||
$logDir = $this->resolveLogDir();
|
||||
$logFile = $logDir . 'cli_' . $ticketId . '_' . date('YmdHis') . '.log';
|
||||
|
||||
$syncMode = $this->normalizeSyncModeForCli($source);
|
||||
$inner = sprintf(
|
||||
'%s %s split:sync-tickets --ticket=%d --mode=%s >> %s 2>&1',
|
||||
'%s %s split:sync-tickets --ticket=%d >> %s 2>&1',
|
||||
escapeshellarg($php),
|
||||
escapeshellarg($think),
|
||||
$ticketId,
|
||||
$syncMode,
|
||||
escapeshellarg($logFile)
|
||||
);
|
||||
|
||||
@@ -405,13 +403,11 @@ class SplitTicketSyncDispatchService
|
||||
continue;
|
||||
}
|
||||
$logFile = $logDir . 'cli_' . $ticketId . '_' . date('YmdHis') . '.log';
|
||||
$syncMode = $this->normalizeSyncModeForCli($source);
|
||||
$parts[] = sprintf(
|
||||
'%s %s split:sync-tickets --ticket=%d --mode=%s >> %s 2>&1',
|
||||
'%s %s split:sync-tickets --ticket=%d >> %s 2>&1',
|
||||
escapeshellarg($php),
|
||||
escapeshellarg($think),
|
||||
$ticketId,
|
||||
$syncMode,
|
||||
escapeshellarg($logFile)
|
||||
);
|
||||
}
|
||||
@@ -556,12 +552,4 @@ class SplitTicketSyncDispatchService
|
||||
{
|
||||
return function_exists('shell_exec') && !in_array('shell_exec', $this->disabledFunctions(), true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 投递 CLI 时携带 --mode,供 sync_success_mode 区分自动/手动
|
||||
*/
|
||||
private function normalizeSyncModeForCli(string $source): string
|
||||
{
|
||||
return in_array($source, ['auto', 'manual'], true) ? $source : 'manual';
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user