Javascript с cron - PullRequest
       27

Javascript с cron

0 голосов
/ 03 июля 2019

Я использую codeigniter и cpanel для базы данных. Я установил один cronjob. В функции cronjob я вызываю одну функцию. В этой функции я создаю один PDF - он включает в себя карты и диаграммы. И я создал ссылку для cron. Когда я нажимаю эту ссылку в браузере, она работает. Но в cronjob это не работает.

public function distance_report_test_pdf($test)
{
    $this->load->view('client_admin/distance_reporttest',$data);
}
$(document).ready(function() {
  get_pdfreport();
}

function get_pdfreport()
{
  window.location.href = '<?php echo base_url();?>index.php/Auto_email_schedule_controller/generate_mapimage/' 
      + user + '/' + start_date + '/' + to_date + '/' + location + '/' + group + '/' + region + '/' + manager + '/' + client_id + '/' + schedule_id;
}

Мне нужно просто вызвать функцию get_pdfreport(); в cronjob. Он включен в файл просмотра distance_reporttest.php . Мой сервер Linux-сервер. Можно ли запустить выше javascript в cron? Если нет, пожалуйста, сообщите мне, что я могу сделать?

1 Ответ

0 голосов
/ 03 июля 2019

Cronjob просто запускает скрипт командной строки.

Вы можете запустить программу PHP через командную строку, используя php /path/to/file.php, но этот вывод этого скрипта будет просто выгружен в STDOUT.Он не будет анализировать HTML.Он не будет извлекать JavaScript из элементов скрипта.Этот JavaScript не будет выполняться.

Программу PHP можно запустить, отправив HTTP-запрос на веб-сервер, поддерживающий PHP.Вы можете сделать это, запустив HTTP-клиент, например, curl или wget из командной строки.Опять же, они не будут анализировать HTML и т. Д.

Вы можете сделать то же самое, но использовать инструмент, подобный Puppeteer, который будет анализировать HTML и запускать JS и т. Д. И т. Д.

…но это был бы действительно сложный и дорогой способ сделать это.


Переписать PHP так, чтобы логика в настоящее время была в JavaScript (который генерирует некоторые данные и затем передает их в другую программу PHP через URL)вместо этого выражается в PHP (и программа PHP просто использует вместо передачи в другую программу PHP).

...