当前位置: 首页 > news >正文

网站做短信接口具体方法如何优化推广中的关键词

网站做短信接口具体方法,如何优化推广中的关键词,独立ip做多个网站,湖州北京网站建设TaskPHP是一个基于PHP的定时任务框架,它提供了一个简单、灵活且易于使用的解决方案,用于在PHP环境中执行定时任务。下面是对TaskPHP框架的简要介绍: 简单易用:TaskPHP的设计目标是让定时任务的创建和管理变得简单。通过简单的配置…

TaskPHP是一个基于PHP的定时任务框架,它提供了一个简单、灵活且易于使用的解决方案,用于在PHP环境中执行定时任务。下面是对TaskPHP框架的简要介绍:

  1. 简单易用:TaskPHP的设计目标是让定时任务的创建和管理变得简单。通过简单的配置和编写任务代码,即可轻松实现定时任务的执行。
  2. 高性能:TaskPHP采用高效的任务调度算法,确保任务能够按照预定的时间准确执行。同时,它还支持并发执行多个任务,提高了任务的执行效率。
  3. 灵活配置:TaskPHP允许用户通过配置文件或代码来定义任务的执行时间、执行间隔、执行次数等参数。用户可以根据自己的需求灵活配置任务。
  4. 可扩展性:TaskPHP框架具有良好的扩展性,用户可以根据自己的需求添加自定义的任务类型或扩展功能。此外,它还支持与其他PHP框架或库进行集成,方便用户在现有项目中使用。
  5. 日志记录:TaskPHP提供了日志记录功能,可以记录任务的执行过程、执行结果以及错误信息等。这有助于用户监控任务的执行情况,及时发现问题并进行处理。
  6. 任务管理:框架提供了任务管理的功能,用户可以查看当前正在执行的任务、已完成的任务以及任务执行的历史记录。这有助于用户对任务进行监控和管理。

TaskPHP是一个功能强大、易于使用的PHP定时任务框架,适用于各种需要定时执行任务的场景。无论是简单的定时发送邮件、定时更新数据,还是复杂的定时爬虫、定时数据分析等任务,TaskPHP都能提供有效的解决方案。

关键环境感知任务记录

<?phpnamespace cron;use taskphp\Utils;require 'taskDb.php';class Service2
{/** 关键环境安全-定时任务* $service_id,定时任务服务路由ID* */public static function getTask($service_id){global $CONF, $serviceArr;$CONF = require '../conf/config.php';require '../conf/config.service.php';$serviceArr = getByServiceId($lock_service, $service_id);Utils::log('Task-ID: ' . $service_id);//数据信息$school_id = $serviceArr['school_id'];$school_type = $serviceArr['school_type'];$school_attribute = $serviceArr['school_attribute'];$school_short_name = $serviceArr['school_short_name'];$service_group = $serviceArr['service_group'];$service_protocol = $serviceArr['service_protocol'];$service_url = $serviceArr['service_url'];$url = $service_protocol . $service_url . '/service/page/sensor/simple.json';$dataPramas = ["group_id" => $service_group];$res = curlIotOnlyAPI($url, '1', '1000', $CONF['iot_token'], $dataPramas);//Utils::log('Task-content: ' . $res);$reArr = json_decode($res, true);if ($reArr && $reArr["data"] && $reArr["data"]["data"] && $reArr["data"]["data"][0]) {$keyData = $reArr["data"]["data"];$environment_area = $reArr["data"]["data"][0]['device'];//插入数据库;Utils::db()->table("environment")->ifInsert(array('task_code' => encodeId($school_id . '-' . $service_id),'service_id' => $service_id,'school_id' => $school_id,'school_type' => $school_type,'school_attribute' => $school_attribute,'school_short_name' => $school_short_name,'environment_area' => $environment_area,'environment_temperature' => getSDataByPropertyType($keyData, '温度'),'environment_temperature_state' => getStatusBySensorStatus($keyData, '温度'),'environment_humidity' => getSDataByPropertyType($keyData, '湿度'),'environment_humidity_state' => getStatusBySensorStatus($keyData, '湿度'),'environment_air' => getSDataByPropertyType($keyData, '空质'),'environment_air_state' => getStatusBySensorStatus($keyData, '空质'),'environment_time' => time()),array('service_id' => $service_id,'school_id' => $school_id,'school_type' => $school_type,'school_attribute' => $school_attribute,'school_short_name' => $school_short_name,'environment_area' => $environment_area,'environment_temperature' => getSDataByPropertyType($keyData, '温度'),'environment_temperature_state' => getStatusBySensorStatus($keyData, '温度'),'environment_humidity' => getSDataByPropertyType($keyData, '湿度'),'environment_humidity_state' => getStatusBySensorStatus($keyData, '湿度'),'environment_air' => getSDataByPropertyType($keyData, '空质'),'environment_air_state' => getStatusBySensorStatus($keyData, '空质'),'environment_time' => time()));//系统日志Utils::db()->table("task_log")->add(array("school_short_name" => $school_short_name,"task_name" => '关键环境安全',"task_status" => '服务路由ID(' . $service_id . ')API组ID(' . $service_group . ')-数据更新成功,STATUS:OK',"task_time" => time()));} else {//系统日志Utils::db()->table("task_log")->add(array("school_short_name" => $school_short_name,"task_name" => '关键环境安全',"task_status" => 'API组ID:' . $service_group . '接口出错,无法爬取数据,STATUS:Fail',"task_time" => time()));die();}//返回数据;return true;}
}

用电计量管理任务记录

<?phpnamespace cron;use taskphp\Utils;require 'taskDb.php';class Service3
{/** 用电计量管理-定时任务* $service_id,定时任务服务路由ID* */public static function getTask($service_id){global $CONF, $serviceArr;$CONF = require '../conf/config.php';require '../conf/config.service.php';$serviceArr = getByServiceId($lock_service, $service_id);Utils::log('Task-ID: ' . $service_id);//数据信息$school_id = $serviceArr['school_id'];$school_type = $serviceArr['school_type'];$school_attribute = $serviceArr['school_attribute'];$school_short_name = $serviceArr['school_short_name'];$service_group = $serviceArr['service_group'];$service_protocol = $serviceArr['service_protocol'];$service_url = $serviceArr['service_url'];$url = $service_protocol . $service_url . '/service/page/sensor/calc/data.json';$dataPramas = ["group_id" => $service_group, 'propertyTypeVal' => '电量'];$res = curlIotOnlyAPI($url, '1', '1000', $CONF['iot_token'], $dataPramas);//Utils::log('Task-content: ' . $res);$reArr = json_decode($res, true);if ($reArr && $reArr["data"] && $reArr["data"]["data"] && $reArr["data"]["data"][0]) {$powerData = $reArr["data"]["data"][0]["odata"];$MonthsArr = generatePastMonths(13);//月份$powerArr = [formatNumber($powerData['prev_0_month_val_diff']),formatNumber($powerData['prev_1_month_val_diff']),formatNumber($powerData['prev_2_month_val_diff']),formatNumber($powerData['prev_3_month_val_diff']),formatNumber($powerData['prev_4_month_val_diff']),formatNumber($powerData['prev_5_month_val_diff']),formatNumber($powerData['prev_6_month_val_diff']),formatNumber($powerData['prev_7_month_val_diff']),formatNumber($powerData['prev_8_month_val_diff']),formatNumber($powerData['prev_9_month_val_diff']),formatNumber($powerData['prev_10_month_val_diff']),formatNumber($powerData['prev_11_month_val_diff']),formatNumber($powerData['prev_12_month_val_diff'])];//对应月份的数据//插入数据库;/*  Utils::db()->table("electricity")->ifInsert(array('school_id' => $school_id,'school_type' => $school_type,'school_attribute' => $school_attribute,'school_short_name' => $school_short_name,'electricity_month' => $MonthsArr[0],'electricity_norm' => $powerArr[0],'electricity_time' => time()),array('school_type' => $school_type,'school_attribute' => $school_attribute,'school_short_name' => $school_short_name,'electricity_norm' => $powerArr[0],'electricity_time' => time()));*/for ($i = 0; $i < count($MonthsArr); $i++) {$row_sec = Utils::db()->table("electricity")->where(array('school_id' => $school_id, 'electricity_month' => $MonthsArr[$i]))->limit(1)->order("school_id DESC")->select();if (!$row_sec) {//插入数据Utils::db()->table("electricity")->add(array('school_id' => $school_id,'service_id' => $service_id,'school_type' => $school_type,'school_attribute' => $school_attribute,'school_short_name' => $school_short_name,'electricity_month' => $MonthsArr[$i],'electricity_norm' => $powerArr[$i],'electricity_time' => time()));} else {//更新数据Utils::db()->table("electricity")->where(array('school_id' => $school_id, 'electricity_month' => $MonthsArr[$i]))->update(array('service_id' => $service_id,'school_type' => $school_type,'school_attribute' => $school_attribute,'school_short_name' => $school_short_name,'electricity_norm' => $powerArr[$i],'electricity_time' => time()));}}//系统日志Utils::db()->table("task_log")->add(array("school_short_name" => $school_short_name,"task_name" => '用电计量管理',"task_status" => '服务路由ID(' . $service_id . ')API组ID(' . $service_group . ')-数据更新成功,STATUS:OK',"task_time" => time()));} else {//系统日志Utils::db()->table("task_log")->add(array("school_short_name" => $school_short_name,"task_name" => '用电计量管理',"task_status" => 'API组ID:' . $service_group . '接口出错,无法爬取数据,STATUS:Fail',"task_time" => time()));die();}//返回数据;return true;}
}

用水计量管理任务记录

<?phpnamespace cron;use taskphp\Utils;require 'taskDb.php';class Service4
{/** 用水计量管理-定时任务* $service_id,定时任务服务路由ID* */public static function getTask($service_id){global $CONF, $serviceArr;$CONF = require '../conf/config.php';require '../conf/config.service.php';$serviceArr = getByServiceId($lock_service, $service_id);Utils::log('Task-ID: ' . $service_id);//数据信息$school_id = $serviceArr['school_id'];$school_type = $serviceArr['school_type'];$school_attribute = $serviceArr['school_attribute'];$school_short_name = $serviceArr['school_short_name'];$service_group = $serviceArr['service_group'];$service_protocol = $serviceArr['service_protocol'];$service_url = $serviceArr['service_url'];$url = $service_protocol . $service_url . '/service/page/sensor/calc/data.json';$dataPramas = ["group_id" => $service_group, 'propertyTypeVal' => '总流量'];$res = curlIotOnlyAPI($url, '1', '1000', $CONF['iot_token'], $dataPramas);//Utils::log('Task-content: ' . $res);$reArr = json_decode($res, true);if ($reArr && $reArr["data"] && $reArr["data"]["data"] && $reArr["data"]["data"][0]) {$powerData = $reArr["data"]["data"][0]["odata"];$MonthsArr = generatePastMonths(13);//月份$powerArr = [formatNumber($powerData['prev_0_month_val_diff']),formatNumber($powerData['prev_1_month_val_diff']),formatNumber($powerData['prev_2_month_val_diff']),formatNumber($powerData['prev_3_month_val_diff']),formatNumber($powerData['prev_4_month_val_diff']),formatNumber($powerData['prev_5_month_val_diff']),formatNumber($powerData['prev_6_month_val_diff']),formatNumber($powerData['prev_7_month_val_diff']),formatNumber($powerData['prev_8_month_val_diff']),formatNumber($powerData['prev_9_month_val_diff']),formatNumber($powerData['prev_10_month_val_diff']),formatNumber($powerData['prev_11_month_val_diff']),formatNumber($powerData['prev_12_month_val_diff'])];//插入数据库;for ($i = 0; $i < count($MonthsArr); $i++) {$row_sec = Utils::db()->table("water")->where(array('school_id' => $school_id, 'water_month' => $MonthsArr[$i]))->limit(1)->order("school_id DESC")->select();if (!$row_sec) {//插入数据Utils::db()->table("water")->add(array('school_id' => $school_id,'service_id' => $service_id,'school_type' => $school_type,'school_attribute' => $school_attribute,'school_short_name' => $school_short_name,'water_month' => $MonthsArr[$i],'water_norm' => $powerArr[$i],'water_time' => time()));} else {//更新数据Utils::db()->table("water")->where(array('school_id' => $school_id, 'water_month' => $MonthsArr[$i]))->update(array('service_id' => $service_id,'school_type' => $school_type,'school_attribute' => $school_attribute,'school_short_name' => $school_short_name,'water_norm' => $powerArr[$i],'water_time' => time()));}}//系统日志Utils::db()->table("task_log")->add(array("school_short_name" => $school_short_name,"task_name" => '用水计量管理',"task_status" => '服务路由ID(' . $service_id . ')API组ID(' . $service_group . ')-数据更新成功,STATUS:OK',"task_time" => time()));} else {//系统日志Utils::db()->table("task_log")->add(array("school_short_name" => $school_short_name,"task_name" => '用水计量管理',"task_status" => 'API组ID:' . $service_group . '接口出错,无法爬取数据,STATUS:Fail',"task_time" => time()));die();}//返回数据;return true;}
}

记录日志

使用第三方爬中仅记录启动和结束任务日志

[2024-03-29 20:22:54.83456200][DEBUG]:distribute_listen daemon pid:383131 Start
[2024-03-29 20:22:55.83205600][DEBUG]:worker_listen daemon pid:383134 Start
[2024-03-29 20:22:56.83395000][DEBUG]:worker_listen daemon pid:383135 Start
[2024-03-29 20:22:57.83637100][DEBUG]:worker_listen daemon pid:383136 Start
[2024-03-29 20:22:58.83940500][DEBUG]:worker_listen daemon pid:383137 Start
[2024-03-29 20:22:59.83934000][DEBUG]:worker_listen daemon pid:383138 Start
[2024-03-29 20:23:00.84222100][DEBUG]:worker_listen daemon pid:383139 Start
[2024-03-29 20:23:01.84334700][DEBUG]:worker_listen daemon pid:383140 Start
[2024-03-29 20:23:02.84479600][DEBUG]:worker_listen daemon pid:383141 Start
[2024-03-29 20:30:01.04360000][DEBUG]:cron\Task14::run [--START--]
[2024-03-29 20:30:01.04501700][DEBUG]:Service-ID: 31
[2024-03-29 20:30:07.56411000][DEBUG]:cron\Task14::run [--END--][RunTime:6.520488s]
[2024-03-29 20:31:01.07364600][DEBUG]:cron\Task15::run [--START--]
[2024-03-29 20:31:01.07523800][DEBUG]:Service-ID: 30
[2024-03-29 20:31:01.85611800][DEBUG]:cron\Task15::run [--END--][RunTime:0.782444s]
[2024-03-29 20:32:01.12884500][DEBUG]:cron\Task6::run [--START--]
[2024-03-29 20:32:01.13076100][DEBUG]:Service-ID: 34
[2024-03-29 20:32:01.69706000][DEBUG]:cron\Task6::run [--END--][RunTime:0.568220s]

taskPHP自带Utils工具,会产生具体的日志记录

[2024-03-28 00:03:01.41235800][DEBUG]:cron\Task14::run [--START--]
[2024-03-28 00:03:01.41251000][DEBUG]:Task-ID: 31
[2024-03-28 00:03:07.83297000][DEBUG]:cron\Task14::run [--END--][RunTime:6.420764s]
[2024-03-28 00:05:00.89040200][DEBUG]:cron\Task10::run [--START--]
[2024-03-28 00:05:00.89097900][DEBUG]:Task-ID: 35
[2024-03-28 00:05:01.04386100][DEBUG]:cron\Task6::run [--START--]
[2024-03-28 00:05:01.04441500][DEBUG]:Task-ID: 34
[2024-03-28 00:05:01.42001300][DEBUG]:SQL:DESC po_environment[bind_value:null][RunTime:0.059952s]
[2024-03-28 00:05:01.49280500][DEBUG]:SQL:INSERT INTO `po_environment` SET `task_code`=:task_code,`service_id`=:service_id,`school_id`=:school_id,`school_type`=:school_type,`school_attribute`=:school_attribute,`school_short_name`=:school_short_name,`environment_area`=:environment_area,`environment_temperature`=:environment_temperature,`environment_temperature_state`=:environment_temperature_state,`environment_humidity`=:environment_humidity,`environment_humidity_state`=:environment_humidity_state,`environment_air`=:environment_air,`environment_air_state`=:environment_air_state,`environment_time`=:environment_time ON DUPLICATE KEY UPDATE `service_id`=:service_id_1,`school_id`=:school_id_2,`school_type`=:school_type_3,`school_attribute`=:school_attribute_4,`school_short_name`=:school_short_name_5,`environment_area`=:environment_area_6,`environment_temperature`=:environment_temperature_7,`environment_temperature_state`=:environment_temperature_state_8,`environment_humidity`=:environment_humidity_9,`environment_humidity_state`=:environment_humidity_state_10,`environment_air`=:environment_air_11,`environment_air_state`=:environment_air_state_12,`environment_time`=:environment_time_13[bind_value:null][RunTime:0.072542s]

@漏刻有时


文章转载自:
http://dinncohogg.wbqt.cn
http://dinncohenna.wbqt.cn
http://dinncothighbone.wbqt.cn
http://dinncodiazomethane.wbqt.cn
http://dinncovascularity.wbqt.cn
http://dinncozinc.wbqt.cn
http://dinncocelom.wbqt.cn
http://dinncoirrepatriable.wbqt.cn
http://dinncoconcha.wbqt.cn
http://dinncodoit.wbqt.cn
http://dinncosemaphore.wbqt.cn
http://dinncouncorrectable.wbqt.cn
http://dinncoepulotic.wbqt.cn
http://dinnconormoblast.wbqt.cn
http://dinncocetin.wbqt.cn
http://dinncokutani.wbqt.cn
http://dinncolad.wbqt.cn
http://dinncocinquecentist.wbqt.cn
http://dinncoapheresis.wbqt.cn
http://dinncopiglet.wbqt.cn
http://dinncoshovelbill.wbqt.cn
http://dinncopreplant.wbqt.cn
http://dinncogoniometry.wbqt.cn
http://dinncoepidermin.wbqt.cn
http://dinncoresilin.wbqt.cn
http://dinncocrabbery.wbqt.cn
http://dinncoundertone.wbqt.cn
http://dinncofactional.wbqt.cn
http://dinncocroatan.wbqt.cn
http://dinncolilied.wbqt.cn
http://dinncoethnarchy.wbqt.cn
http://dinncocalvinistic.wbqt.cn
http://dinnconatalist.wbqt.cn
http://dinncomanioc.wbqt.cn
http://dinncoconstitutor.wbqt.cn
http://dinncometer.wbqt.cn
http://dinncofoxtail.wbqt.cn
http://dinncounderbidder.wbqt.cn
http://dinncopycnorneter.wbqt.cn
http://dinncorepudiate.wbqt.cn
http://dinncoprism.wbqt.cn
http://dinncoacyclic.wbqt.cn
http://dinncocite.wbqt.cn
http://dinncosouthwest.wbqt.cn
http://dinncoscenic.wbqt.cn
http://dinncohiddenite.wbqt.cn
http://dinncoblackboard.wbqt.cn
http://dinncoscintilla.wbqt.cn
http://dinncosulphidic.wbqt.cn
http://dinncoperiodontia.wbqt.cn
http://dinncochilly.wbqt.cn
http://dinncopresley.wbqt.cn
http://dinncowarbler.wbqt.cn
http://dinncoantilitter.wbqt.cn
http://dinncomechanomorphic.wbqt.cn
http://dinncoentrust.wbqt.cn
http://dinncomartinmas.wbqt.cn
http://dinncocrassulaceous.wbqt.cn
http://dinncojolly.wbqt.cn
http://dinncoicily.wbqt.cn
http://dinncohiphuggers.wbqt.cn
http://dinncoduplicature.wbqt.cn
http://dinncoinexpectancy.wbqt.cn
http://dinncojauk.wbqt.cn
http://dinncohaunting.wbqt.cn
http://dinncouptodate.wbqt.cn
http://dinncoamputee.wbqt.cn
http://dinncoinsertion.wbqt.cn
http://dinncoallude.wbqt.cn
http://dinncopedal.wbqt.cn
http://dinncoastigmatism.wbqt.cn
http://dinncojonnock.wbqt.cn
http://dinncoswim.wbqt.cn
http://dinncodeckhand.wbqt.cn
http://dinncomohair.wbqt.cn
http://dinncostitches.wbqt.cn
http://dinncopitiful.wbqt.cn
http://dinncorear.wbqt.cn
http://dinncoweldor.wbqt.cn
http://dinncoindiscoverable.wbqt.cn
http://dinncocia.wbqt.cn
http://dinncogentlefolk.wbqt.cn
http://dinncomillimho.wbqt.cn
http://dinncokersey.wbqt.cn
http://dinncoinsignia.wbqt.cn
http://dinncometabiology.wbqt.cn
http://dinncosulfadiazine.wbqt.cn
http://dinncohydatid.wbqt.cn
http://dinncoanorectal.wbqt.cn
http://dinncoclaretian.wbqt.cn
http://dinncomold.wbqt.cn
http://dinncoactivism.wbqt.cn
http://dinncorussetish.wbqt.cn
http://dinncounlace.wbqt.cn
http://dinncotechnopolis.wbqt.cn
http://dinncojudaeophile.wbqt.cn
http://dinncoplanar.wbqt.cn
http://dinncogoblet.wbqt.cn
http://dinncopullet.wbqt.cn
http://dinncopygmaean.wbqt.cn
http://www.dinnco.com/news/124490.html

相关文章:

  • 怎样设计一个网站厦门网站优化
  • 网站内容运营是什么推广普通话内容100字
  • 个人备案网站做淘宝客seo黑帽有哪些技术
  • 广告设计与制作专升本seo专业培训课程
  • 网站开发时app打开很慢如何做网销
  • 做互助盘网站b2b电子商务网站
  • 网站设计的指导思想十大免费网站推广入口
  • 学校官方网站建设网站的网站首页
  • wordpress导出sqlseo流量增加软件
  • 网站别人做的上面有方正字体微信搜一搜seo优化
  • 厦门网站建设服务公司小璇seo优化网站
  • 仙居建设规划局网站什么平台推广效果最好
  • 网站分为哪些结构google官方下载app
  • 桓台网站推广百度竞价推广收费
  • 专门做金融的招聘网站品牌营销策划书
  • 惠州模板网站广告搜索引擎
  • 卖东西怎么做网站郑州见效果付费优化公司
  • 做网站收费 知乎轻饮食网络推广方案
  • 门户网站建设为企业带来的好处seo顾问是什么
  • 毕业设计做网站还是系统好百度推广费
  • 360免费建站模板营业推广方式
  • 一流的聊城做网站费用湖南网站推广公司
  • 重庆微信网站开常用seo站长工具
  • 免费软件安装网站seo分析报告
  • 太原网站优化哪家专业网站关键词排名优化电话
  • 可口可乐网站建设目的免费百度广告怎么投放
  • 济南做html5网站建设武汉seo 网络推广
  • 网页界面设计艺术教程百度seo排名优化
  • 上海哪家公司做网站关键词优化设计
  • 上海网站备案审核时间南京seo