mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-06-16 14:50:48 +03:00
Задачи в крон - очистка старого кеша и рассылка емайлов
This commit is contained in:
parent
9b4388fa76
commit
3fdba1318b
|
@ -128,7 +128,15 @@ class ModuleTools extends Module {
|
|||
}
|
||||
return $sText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Отдает файл на загрузку в браузер пользователя
|
||||
*
|
||||
* @param $sFilePath
|
||||
* @param $sFileName
|
||||
* @param null $iFileSize
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function DownloadFile($sFilePath,$sFileName,$iFileSize=null) {
|
||||
if (file_exists($sFilePath) and $file=fopen($sFilePath,"r")) {
|
||||
header("Content-Type: application/octet-stream");
|
||||
|
@ -145,4 +153,26 @@ class ModuleTools extends Module {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Запускает задачу рассылки емайлов (отложенная отправка)
|
||||
*/
|
||||
public function SystemTaskNotify() {
|
||||
$aNotifyTasks = $this->Notify_GetTasksDelayed(Config::Get('module.notify.per_process'));
|
||||
if(!$aNotifyTasks) {
|
||||
return 'empty';
|
||||
}
|
||||
/**
|
||||
* Последовательно загружаем задания
|
||||
*/
|
||||
$aArrayId=array();
|
||||
foreach ($aNotifyTasks as $oTask) {
|
||||
$this->Notify_SendTask($oTask);
|
||||
$aArrayId[]=$oTask->getTaskId();
|
||||
}
|
||||
/**
|
||||
* Удаляем отработанные задания
|
||||
*/
|
||||
$this->Notify_DeleteTaskByArrayId($aArrayId);
|
||||
return "Send notify: ".count($aArrayId);
|
||||
}
|
||||
}
|
|
@ -627,4 +627,9 @@ CREATE TABLE IF NOT EXISTS `prefix_cron_task` (
|
|||
KEY `plugin` (`plugin`),
|
||||
KEY `method` (`method`(255)),
|
||||
KEY `period_run` (`period_run`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
|
||||
-- 17.08.2014
|
||||
INSERT INTO `prefix_cron_task` (`id`, `title`, `method`, `plugin`, `state`, `count_run`, `period_run`, `date_create`, `date_run_last`) VALUES (NULL, 'Отложенная отправка емайлов', 'Tools_SystemTaskNotify', '', '1', '0', '2', '2014-08-17 00:00:00', NULL);
|
||||
INSERT INTO `prefix_cron_task` (`id`, `title`, `method`, `plugin`, `state`, `count_run`, `period_run`, `date_create`, `date_run_last`) VALUES (NULL, 'Удаление старого кеша данных', 'Cache_ClearOldCache', '', '1', '0', '1500', '2014-08-17 00:00:00', NULL);
|
|
@ -1,53 +0,0 @@
|
|||
<?php
|
||||
/*-------------------------------------------------------
|
||||
*
|
||||
* LiveStreet Engine Social Networking
|
||||
* Copyright © 2008 Mzhelskiy Maxim
|
||||
*
|
||||
*--------------------------------------------------------
|
||||
*
|
||||
* Official site: www.livestreet.ru
|
||||
* Contact e-mail: rus.engine@gmail.com
|
||||
*
|
||||
* GNU General Public License, version 2:
|
||||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
*
|
||||
---------------------------------------------------------
|
||||
*/
|
||||
|
||||
require_once(dirname(dirname(dirname(__DIR__))).'/bootstrap/start.php');
|
||||
|
||||
class CronNotify extends Cron {
|
||||
/**
|
||||
* Выбираем пул заданий и рассылаем по ним e-mail
|
||||
*/
|
||||
public function Client() {
|
||||
$aNotifyTasks = $this->Notify_GetTasksDelayed(Config::Get('module.notify.per_process'));
|
||||
|
||||
if(empty($aNotifyTasks)) {
|
||||
$this->Log("No tasks are found.");
|
||||
return;
|
||||
}
|
||||
/**
|
||||
* Последовательно загружаем задания на публикацию
|
||||
*/
|
||||
$aArrayId=array();
|
||||
foreach ($aNotifyTasks as $oTask) {
|
||||
$this->Notify_SendTask($oTask);
|
||||
$aArrayId[]=$oTask->getTaskId();
|
||||
}
|
||||
$this->Log("Send notify: ".count($aArrayId));
|
||||
/**
|
||||
* Удаляем отработанные задания
|
||||
*/
|
||||
$this->Notify_DeleteTaskByArrayId($aArrayId);
|
||||
}
|
||||
}
|
||||
|
||||
$sLockFilePath=Config::Get('sys.cache.dir').'CronNotify.lock';
|
||||
/**
|
||||
* Создаем объект крон-процесса,
|
||||
* передавая параметром путь к лок-файлу
|
||||
*/
|
||||
$app=new CronNotify($sLockFilePath);
|
||||
print $app->Exec();
|
|
@ -1,43 +0,0 @@
|
|||
<?php
|
||||
/*-------------------------------------------------------
|
||||
*
|
||||
* LiveStreet Engine Social Networking
|
||||
* Copyright © 2008 Mzhelskiy Maxim
|
||||
*
|
||||
*--------------------------------------------------------
|
||||
*
|
||||
* Official site: www.livestreet.ru
|
||||
* Contact e-mail: rus.engine@gmail.com
|
||||
*
|
||||
* GNU General Public License, version 2:
|
||||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
*
|
||||
---------------------------------------------------------
|
||||
*/
|
||||
|
||||
require_once(dirname(dirname(dirname(__DIR__))).'/bootstrap/start.php');
|
||||
|
||||
class CronTemplateCacheClean extends Cron {
|
||||
/**
|
||||
* Находим все кеш-файлы js и css и удаляем их с сервера
|
||||
*/
|
||||
public function Client() {
|
||||
/**
|
||||
* Выбираем все файлы кеша
|
||||
*/
|
||||
$aFiles = glob(Config::Get('path.smarty.cache'). DIRECTORY_SEPARATOR ."*\*.{css,js}", GLOB_BRACE);
|
||||
if (!$aFiles) $aFiles=array();
|
||||
|
||||
$this->Log("Cache files count: ".count($aFiles));
|
||||
|
||||
foreach ($aFiles as $sFilePath) {
|
||||
@unlink($sFilePath);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Создаем объект крон-процесса
|
||||
*/
|
||||
$app=new CronTemplateCacheClean();
|
||||
print $app->Exec();
|
|
@ -1 +1 @@
|
|||
Subproject commit 5f4f0fc412f26ee1725e16260404ff9ef03c9f70
|
||||
Subproject commit 9c87dad040c61d82c05d46a336561fff0d163eb6
|
Loading…
Reference in a new issue