当前位置: 首页>>代码示例>>PHP>>正文


PHP Status::setCalculationStatus方法代码示例

本文整理汇总了PHP中Status::setCalculationStatus方法的典型用法代码示例。如果您正苦于以下问题:PHP Status::setCalculationStatus方法的具体用法?PHP Status::setCalculationStatus怎么用?PHP Status::setCalculationStatus使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Status的用法示例。


在下文中一共展示了Status::setCalculationStatus方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: insertMeta

 /**
  * Insert archive metas
  * @param array $metas
  */
 public function insertMeta(array $metas)
 {
     $ok = array('report_id', 'environment', 'build', 'settings_global', 'settings_system', 'settings_secure', 'device_features', 'shared_preferences', 'initial_configuration', 'crash_configuration', 'dumpsys_meminfo', 'display', 'stack_trace', 'logcat', 'tktal_mem_size', '@evice_features', 'installation_id', 'file_path', 'dropbox', 'is_silent', 'custom_data');
     foreach ($metas as $key => $value) {
         if (in_array($key, $ok)) {
             // first, insert into meta_archive to get last ID
             try {
                 $meta = Meta::create(array('crash_id' => $this->id, 'name' => $key, 'value' => $value));
             } catch (\Exception $e) {
                 Log::error("Can not insert meta for={$this->id} key={$key} value={$value}");
                 Log::exception($e);
                 \Status::setCalculationStatus('Died. Failed on meta table');
                 exit(1);
             }
         } else {
             // key is not recognized, but we'll still write it in database
             try {
                 UnknownMeta::create(array('report_id' => $this->id, 'meta_name' => $key, 'meta_value' => $value));
             } catch (\Exception $e) {
                 Log::error("Can not insert unknown meta report_id={$this->id} meta_name={$key} meta_value={$value}");
                 Log::exception($e);
                 \Status::setCalculationStatus('Died. Failed on unknown meta table');
                 exit(1);
             }
         }
     }
 }
开发者ID:nkammah,项目名称:Crash-Analytics,代码行数:31,代码来源:Archive.php

示例2: startRecalculationAjax

 public function startRecalculationAjax()
 {
     if (Status::isCalculationInProgress()) {
         return \BootstrapUI::buttonRemoteResponse()->text('Calculation is already in progress');
     }
     return \BootstrapUI::buttonRemoteResponse()->disableButton()->text('Recalculation is in progress...')->after(function () {
         set_time_limit(0);
         \Status::calculationStarted();
         \Status::setCalculationStatus('Recalculating brands');
         \Brand::recalculate();
         \Status::setCalculationStatus('Recalculating countries');
         \Country::recalculate();
         \Status::setCalculationStatus('Recalculating packages');
         \Package::recalculate();
         \Status::setCalculationStatus('Recalculating package versions');
         \Package\Version::recalculate();
         \Status::setCalculationStatus('Recalculating phone models');
         \Phone\Model::recalculate();
         \Status::setCalculationStatus('Recalculating product names');
         \Product::recalculate();
         \Status::setCalculationStatus('Recalculating providers');
         \Provider::recalculate();
         \Status::setCalculationStatus('Recalculating stack traces');
         \Stack\Trace::recalculate();
         \Status::setCalculationStatus('Recalculating OS versions');
         \Version::recalculate();
         \Status::calculationFinished('all');
     });
 }
开发者ID:nkammah,项目名称:Crash-Analytics,代码行数:29,代码来源:SystemController.php

示例3: calculate

 /**
  * Calculate for reports
  * @return boolean
  */
 public function calculate()
 {
     if (Status::isCalculationInProgress()) {
         Log::info('Trying to start calculation, but calculation is already in progress. Last was started on ' . Status::getLastCalculationProcessStart() . ' UTC');
         return false;
     }
     ini_set('memory_limit', '512M');
     set_time_limit(0);
     Status::calculationStarted();
     Status::setCalculationStatus('Initializing');
     Log::info('Calculation started');
     /**
      * metas: 'file_path', 'build', 'environment', 'settings_global', 'settings_system', 'settings_secure',
      * 'device_features', 'shared_preferences', 'initial_configuration', 'crash_configuration',
      * 'dumpsys_meminfo', 'display', 'stack_trace', 'logcat', 'tktal_mem_size', '@evice_features', 'installation_id'
      */
     $query = new Select();
     $query->from('crash_submit')->field('id')->limit(0, 200000);
     $maxQuery = CrashArchive::query()->field('MAX(created_at)', 'time');
     $max = $maxQuery->fetchFirstObj();
     unset($maxQuery);
     $lastDatetime = new DateTime(gmdate('Y-m-d H:00:00'));
     $lastDatetime->modify('-1 hour');
     $query->where('created_at', '<', $lastDatetime->format('Y-m-d H:i:s'));
     $ids = $query->fetchAllObj();
     $sizeofIds = sizeof($ids);
     Log::info('Loaded ids: ' . $sizeofIds);
     $brandTotals = $countryTotals = $packageTotals = $packageVersionTotals = $phoneModelTotals = $productTotals = $providerTotals = $stackTraceTotals = $osVersionTotals = array();
     foreach ($ids as $index => $r) {
         // on every 25 records, we should ask ourself: is that it?
         if ($index % 25 == 0) {
             $shouldTerminate = Status::shouldCalcuationTerminate();
             if ($shouldTerminate !== false) {
                 Log::info("Noticed request for calculation termination on {$shouldTerminate}. Aborted!");
                 Status::setCalculationStatus('Terminated after ' . ($index + 1) . ' records');
                 Status::terminateCalculation(false);
                 return false;
             }
         }
         $id = $r->id;
         // record by record
         Log::info("Will now fetch id={$id}");
         if ($index % 15 == 0) {
             $percent = round($index / $sizeofIds * 100, 2);
             Status::setCalculationStatus("Working; {$index}/{$sizeofIds} {$percent}%");
         }
         $submit = CrashSubmit::fetchOne($id);
         if ($submit !== false && $submit->package_name !== null && trim($submit->package_name !== null) != '') {
             $appStartTime = strtotime($submit->user_app_start_date);
             $appCrashTime = strtotime($submit->user_crash_date);
             $appLifetime = $appCrashTime - $appStartTime;
             $metas = $submit->getMetas();
             if ($submit->report_id !== null && trim($submit->report_id) !== '') {
                 $metas['report_id'] = $submit->report_id;
             }
             if ($submit->file_path !== null && trim($submit->file_path) !== '') {
                 $metas['file_path'] = $submit->file_path;
             }
             if ($submit->installation_id !== null && trim($submit->installation_id) !== '') {
                 $metas['installation_id'] = $submit->installation_id;
             }
             $stackTrace = $submit->stack_trace;
             if ($stackTrace === null) {
                 $stackTraceSummary = null;
             } else {
                 $metas['stack_trace'] = $stackTrace;
                 $stackTraceSummary = StackTrace::getSummary($stackTrace);
             }
             $packageId = $this->getPackageId($submit->package_name);
             $packageVersionId = $this->getPackageVersionId($this->getPackageId($submit->package_name), $submit->app_version_name);
             $brandId = $this->getBrandId($submit->brand);
             $phoneModelId = $this->getModelId($this->getBrandId($submit->brand), $submit->phone_model);
             $productId = $this->getProductId($this->getBrandId($submit->brand), $submit->product);
             $osVersionId = $this->getOsVersion($submit->os, $submit->android_version);
             $stackTraceId = $this->getStackTraceId($stackTraceSummary, $submit->created_at);
             $countryId = $this->getCountryId($submit->country);
             $providerId = $this->getProviderId($submit->provider);
             $archive = CrashArchive::create(array('created_at' => $submit->created_at, 'package_id' => $packageId, 'package_version_id' => $packageVersionId, 'brand_id' => $brandId, 'model_id' => $phoneModelId, 'product_id' => $productId, 'os' => $submit->os, 'os_version_id' => $osVersionId, 'total_mem_size' => $submit->total_mem_size, 'available_mem_size' => $submit->available_mem_size, 'user_comment' => trim($submit->user_comment) == '' ? null : trim($submit->user_comment), 'user_email' => trim($submit->user_email) == 'N/A' ? null : trim($submit->user_email), 'user_app_start_date' => $submit->user_app_start_date, 'user_crash_date' => $submit->user_crash_date, 'user_app_lifetime' => $appLifetime, 'stack_trace_id' => $stackTraceId, 'country_id' => $countryId, 'provider_id' => $providerId));
             $archive->insertMeta($metas);
             // prepare increments for totals
             if ($packageId !== null) {
                 if (!isset($packageTotals[$packageId])) {
                     $packageTotals[$packageId] = 0;
                 }
                 $packageTotals[$packageId]++;
             }
             if ($packageVersionTotals !== null) {
                 if (!isset($packageVersionTotals[$packageVersionId])) {
                     $packageVersionTotals[$packageVersionId] = 0;
                 }
                 $packageVersionTotals[$packageVersionId]++;
             }
             if ($brandId !== null) {
                 if (!isset($brandTotals[$brandId])) {
                     $brandTotals[$brandId] = 0;
                 }
//.........这里部分代码省略.........
开发者ID:nkammah,项目名称:Crash-Analytics,代码行数:101,代码来源:Calculation.php


注:本文中的Status::setCalculationStatus方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。