protected static function initTask()
{
foreach (self::scheme() as $name => $scheme) {
//解析代理器数组模式的调度配置
if (is_array($scheme)) {
$data = self::parseScheme($scheme);
$scheme = $data['scheme'];
}
//创建任务驱动器
self::getTask()->driver("{$name} {$scheme}")->work(function ($driver) {
$agent = self::getAgent($driver->name);
$smsData = $driver->getTaskData();
extract($smsData);
$template = isset($templates[$driver->name]) ? $templates[$driver->name] : 0;
if ($type === self::TYPE_VOICE) {
$agent->voiceVerify($to, $voiceCode, $template, $templateData);
} elseif ($type === self::TYPE_SMS) {
$agent->sendSms($to, $content, $template, $templateData);
}
$result = $agent->result();
if ($result['success']) {
$driver->success();
}
unset($result['success']);
return $result;
});
}
}