Direct Admin上的Cronjobs无法正常工作

时间:2017-07-14 09:21:10

标签: php mysql cron directadmin

我在直接管理员上创建了一个cronjobs,如果运行它会检查curl =>>>更改mysql中的值。但它不起作用。请帮我 @@。谢谢 这是我的代码:

    <?php

class ControllerVemaybayCronJobapp 
    {



            function index(){
            $connect = $this->connect();
            $query_routes_1 = $connect->query("SELECT * FROM **** where status = '0' GROUP BY routes ");
            for ($result = array();
            $row = $query_routes_1->fetch_assoc();
            $result[array_shift($row)] = $row);

            foreach ($result as $i => $aaa){
                $routes = $aaa['routes'];
                $detail_routes_2 = $connect->query("SELECT * FROM **** where routes = '" . $routes . "' AND status = '0' ");
                for ($result2 = array();
                $row2 = $detail_routes_2 ->fetch_assoc();
                $result2[array_shift($row2)] = $row2);

                foreach ($result2 as $t => $value1) {

                    $ngay = $value1['ngay'];
                    $thang = $value1['thang'];
                    $nam = $value1['nam'];
                    $min = $value1['minPrice'];
                    $max = $value1['maxPrice'];
                    $providers = $value1['providers'];
                    $startdate = $nam.$thang.'01';
                    $enddate = $nam.$thang.'31';

                    $bien = $this->getlist_ticketsofdate($routes,$startdate,$enddate);
                    foreach ($bien as $k => $value) {
                        $moi2 = array();
                        $moi = $value['c'];
                        $moi2 = $value['f'];
                        if($value['_id']['dim'] == $ngay ){
                            if($min <= $value['c'] && $value['c'] <= $max &&  strpos($providers, $value['p']) !== false){
                                $connect->query("UPDATE **** SET status='1' where customer_id = '" . $value1['customer_id'] . "' ");
                                break;
                            }else{
                                foreach ($moi2 as $key => $value2) {
                                    if($min <= $value2['cp'] && $value2['cp'] <= $max && strpos($providers, $value2['p']) !== false){
                                        $connect->query("UPDATE **** SET status='1' where customer_id = '" . $value1['customer_id'] . "' ") ;
                                         break;
                                    }
                                }
                            }
                        }
                    }
                 }
            }
        }


        function connect(){
            $servername = "****";
            $username = "****";  
            $password = "****";  
            $databasename = "****"; 
            $conn = new mysqli($servername, $username, $password,$databasename);
            if ($conn->connect_error) {
                die("Connection failed: " . $conn->connect_error);
            } 
            return $conn;
        }



        function getlist_ticketsofdate($diadiem,$startDate,$endDate){


            $url = '****';

            $providers = array();
            $providers[0] = '****';
            $providers[1] = '****';
            $providers[2] = '****';

            $routes = array();  
            $routes[0] = $diadiem;

            $headers = array();
            $headers[] = 'Content-Type: application/json';
            $headers[] = 'Connection:keep-alive';

            $param = array(
                'startDate' => $startDate,
                'endDate' => $endDate,
                'minPrice' => '0',
                'maxPrice' => '700000',
                'providers' => $providers,
                'routes' => $routes,
                'type' => 'date',
            );

            $data_string = json_encode($param);

            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);                                                                 
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);      
            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

            $response = curl_exec($ch);
            $result_tickets = json_decode($response,true);
            return $result_tickets;
        }
}
?>

This is my cronjobs

1 个答案:

答案 0 :(得分:1)

Cron作业可能无法直接在管理员上运行,因为它可能需要对某些进程进行身份验证。

示例php文件名mail.php

jobs.push({foo:bar});

Cron命令:

对于网址

<?php
// the message
$msg = "First line of text\nSecond line of text";

// use wordwrap() if lines are longer than 70 characters
$msg = wordwrap($msg,70);

// send email
mail("someone@example.com","My subject",$msg);
?>

路径

*   *   *   *   *   wget http://example.com/mail.php &> /dev/null

此cron作业每分钟发送一次邮件。