123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- <?php
- class CronAction extends Action {
-
-
- public function deleteWdRecords( ){
- $config = C('ORACLE_CONFIG');
-
- $host= $config['host'];
- $port= $config['port'];
- $instance_name= $config['instance_name'];
- $username= $config['username'];
- $password= $config['password'];
-
- /*
- $host= '192.168.100.23';
- $port= '1521';
- $instance_name= 'helowin';
- $username= 'DSSC3';
- $password= 'Rliandssc3';
- */
- $conn = oci_connect($username, $password, $host.':'.$port.'/'. $instance_name,'AL32UTF8');
- if (!$conn) {
- $e = oci_error();
- trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
- }
- $min_id=0;
- $query_sql='select ID from DSSC2.W_DW_RF_RECORD where rownum = 1 order by ID Asc ';
- $stid = oci_parse($conn, $query_sql);
- oci_define_by_name($stid, 'ID', $min_id);
- oci_execute($stid);
- oci_fetch($stid);
-
- $max_id=0;
- $query_sql='select ID from DSSC2.W_DW_RF_RECORD where rownum = 1 order by ID Desc ';
- $stid = oci_parse($conn, $query_sql);
- oci_define_by_name($stid, 'ID', $max_id);
- oci_execute($stid);
- oci_fetch($stid);
- if(($max_id-$min_id )<2900000000){
- echo '['.date('Y-m-d H:i:s').']无数据删除,起始ID:'.$min_id.',结束ID:'.$max_id.PHP_EOL;
- oci_close($conn);
- return;
- }
-
- $time=date("Y-m-d",strtotime("-1 day"));
- $where=array(
- 'date'=>$time
- );
- $count=M('station_passing')->where($where)->sum('num');
- echo '['.date('Y-m-d H:i:s').']删除:'.$count.'数据,起始ID:'.$min_id.PHP_EOL;
- for($i=0;$i<=$count;$i++){
- $del_sql='DELETE FROM DSSC2.W_DW_RF_RECORD WHERE ID = '.$min_id;
- $stid = oci_parse($conn, $del_sql);
- $r = oci_execute($stid);
- oci_free_statement($stid);
- $min_id++;
- }
- oci_close($conn);
- /*
- ;
-
- $length=C('ORACLE_DATA_LENGTH')?C('ORACLE_DATA_LENGTH'):800000000;
- $delete_id=$max_id-$length;
-
- while($min_id<=$delete_id){
- $del_sql='DELETE FROM DSSC2.W_DW_RF_RECORD WHERE ID = '.$min_id;
- $stid = oci_parse($conn, $del_sql);
- $r = oci_execute($stid);
- oci_free_statement($stid);
- $min_id++;
-
- }
- oci_close($conn);
- */
-
- }
-
-
- public function monitor_proces( ){
- //检测 消费进程是否正常消费
- $redis = Redis("nbfd_monitor_process_id","hash");
- $list=$redis->select();
- foreach($list as $key=>$val){
- $item=json_decode($val,true);
- $int=time()-$item['time'];
- if($int>12*3600){
- posix_kill($item['pid'], SIGHUP);
- $redis->where($key)->delete();
- }
- }
- //检测ftp目录文件是否堆积
- $dir=C('FTP_LOCAL_DIR');
- $arr = scandir($dir);
- $all = count($arr)-2;//所有文件总数除./和../
- if($all>=20){
- //超过20则推送告警 并记录告警时间 间隔多久推送一次
- $str='目录'.$dir.'文件堆积数量过多,堆积数:'.$all;
- $email=C('FTP_DIR_ALARM_EMAIL');
- $config = new Darabonba\OpenApi\Models\Config([
- // 必填,您的 AccessKey ID
- "accessKeyId" =>'LTAI4FecTAyMPdhAdkUwhAGA',
- // 必填,您的 AccessKey Secret
- "accessKeySecret" =>'Ih0knSSfcje3OUi1YrdjeXQZYIfmTK'
- ]);
- // 访问的域名
- $config->endpoint = "dm.aliyuncs.com";
- $client =new \AlibabaCloud\SDK\Dm\V20151123\Dm($config);
- $singleSendMailRequest =new \AlibabaCloud\SDK\Dm\V20151123\Models\SingleSendMailRequest([
- "addressType" => 1,
- "accountName" => "system@fdmail.renlianiot.com",
- "tagName" => "renlianiot",
- "toAddress" =>$email,
- "htmlBody" => $str,
- "replyToAddress" => true,
- "subject" => "防盗监控告警"
- ]);
- $resp = $client->singleSendMail($singleSendMailRequest);
- }
- // var_dump($resp);
-
- }
-
- }
|