Cron and Curl Удалить или закрыть Session User

привет, я внедрил систему cron для Ubuntu; который по причинам, которые мне нужно запускать каждые 30 секунд, мне пришлось внести некоторые коррективы в сочетании с PHP для достижения необходимой области.

проблема в том, что до реализации все работало нормально; После внедрения я заметил, что php-сессии пользователя случайно удаляются через 1 час. когда это должно длиться до 8 часов …

Выполнен файл CRON:

#!/bin/sh
cd /opt/lampp/htdocs/control/cronos/
php cron.php

CRON PHP Handler:

<?php
$j = 0;
while ($j <= 1) {
$url    = 'http://127.0.0.1/index.php';
$fields = array(
'idprocess' => 'p-cronjobs',
'idform'    => 'p-cronjobs',
);
$postvars         = http_build_query($fields);
$COOKIE_FILE_PATH = "/tmp/cookiescron.txt";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $postvars);
curl_setopt($ch, CURLOPT_TIMEOUT, 2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_FORBID_REUSE, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($ch, CURLOPT_DNS_CACHE_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: close'));
curl_exec($ch);
curl_close($ch);
$j++;
sleep(25);
}
?>

Обработчик системы для выполнения PHP Manager Cron:

switch ($idform) {
case "p-cronjobs":
$stmtpre      = "SELECT TListIdCJ FROM ListCronJobs WHERE TListCJST=1 AND TListCJSTR=0;";
$data         = $this->DBMANAGER->BDquery($stmtpre, DB_N_LIST);
$result_exist = $data->num_rows;

if ($result_exist != 0) {
while ($row = mysqli_fetch_assoc($data)) {

$fields = array(
'idprocess' => $row['TListIdCJ'],
'idform'    => 'p-runcronjobs',
);
$postvars = http_build_query($fields);
$ch       = curl_init();
curl_setopt($ch, CURLOPT_URL, LOCALURL);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $postvars);
curl_setopt($ch, CURLOPT_TIMEOUT, 2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_FORBID_REUSE, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($ch, CURLOPT_DNS_CACHE_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: close'));
curl_exec($ch);
curl_close($ch);
}
}
break;
}

Как можно избежать проблем с сеансом cron и множественных запросов, выполняемых с помощью curl?

0

Решение

Проблема может быть связана с использованием:

session_set_cookie_params(time() + 3600);
or
setcookie('name', 'id', time()+3600, "/");

Разъяснение PHP сборки мусора

нужно обойти это, чтобы решить и использовать после прочтения данных из Session и если у вас есть доступ к php.ini Вы можете установить Expiration на 0, чтобы предотвратить сеанс уничтожения сборщика мусора.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector