src/Biz/Xapi/Job/PushStatementJob.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace Biz\Xapi\Job;
use Biz\System\Service\SettingService;
use Biz\Xapi\Service\XapiService;
use Codeages\Biz\Framework\Scheduler\AbstractJob;
use AppBundle\Common\ArrayToolkit;
class PushStatementJob extends AbstractJob
{
private $perCount = 500;
private $maxTimes = 40;
public function execute()
{
$xapiSetting = $this->getSettingService()->get('xapi', array());
if (empty($xapiSetting['enabled'])) {
return;
}
$count = $this->getXapiService()->countStatements(array('status' => 'converted'));
$times = ceil($count / $this->perCount);
$times = min($times, $this->maxTimes);
for ($i = 0; $i < $times; ++$i) {
$this->pushStatements($this->perCount);
}
}
protected function pushStatements($count)
{
try {
$condition = array(
'status' => 'converted',
);
$statements = $this->getXapiService()->searchStatements($condition, array('created_time' => 'DESC'), 0, $count);
$statementIds = ArrayToolkit::column($statements, 'id');
$uuids = ArrayToolkit::column($statements, 'uuid');
$statements = ArrayToolkit::index($statements, 'uuid');
$pushStatements = ArrayToolkit::column($statements, 'data');
if (empty($pushStatements)) {
return;
}
$this->getXapiService()->updateStatementsPushingByStatementIds($statementIds);
$results = $this->createXAPIService()->pushStatements($pushStatements);
$this->biz['logger']->info('XAPI PUSH RESULT:', $results);
$callbackIds = array();
if (is_array($results)) {
foreach ($results as $uuid) {
if (in_array($uuid, $uuids)) {
$callbackIds[] = $uuid;
} else {
$this->biz['logger']->info('XAPI PUSH ERROR:', array('message' => $uuid));
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。