本文整理汇总了PHP中SJB_HelperFunctions::writeCronLogFile方法的典型用法代码示例。如果您正苦于以下问题:PHP SJB_HelperFunctions::writeCronLogFile方法的具体用法?PHP SJB_HelperFunctions::writeCronLogFile怎么用?PHP SJB_HelperFunctions::writeCronLogFile使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SJB_HelperFunctions
的用法示例。
在下文中一共展示了SJB_HelperFunctions::writeCronLogFile方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: execute
public function execute()
{
set_time_limit(0);
$notifiedEmails = array();
$emailScheduling = SJB_Settings::getSettingByName('email_scheduling');
$numberEmails = SJB_Settings::getSettingByName('number_emails');
$emailsSend = SJB_Settings::getSettingByName('send_emails');
$limit = $numberEmails - $emailsSend;
$limit = $limit > 0 ? $limit : 20;
$letters = SJB_DB::query('SELECT * FROM `email_scheduling` ORDER BY `id` ASC LIMIT 0, ?n', $limit);
if ($emailScheduling && $numberEmails || count($letters)) {
foreach ($letters as $letter) {
$params = $letter;
unset($params['id']);
$email = new SJB_Email($params['email']);
$email->setSubject($params['subject']);
$email->setText($params['text']);
$email->setFile($params['file']);
if ($email->send(true)) {
SJB_DB::query('DELETE FROM `email_scheduling` WHERE `id` = ?n', $letter['id']);
array_push($notifiedEmails, $params['email']);
}
}
}
$tp = SJB_System::getTemplateProcessor();
$tp->assign('notified_emails', $notifiedEmails);
$schedulerLog = $tp->fetch('email_scheduler_log.tpl');
SJB_HelperFunctions::writeCronLogFile('email_scheduler.log', $schedulerLog);
}
示例2: runTaskScheduler
//.........这里部分代码省略.........
$productInfo = SJB_ProductsManager::getProductInfoBySID($contractInfo['product_sid']);
$userInfo = SJB_UserManager::getUserInfoBySID($contractInfo['user_sid']);
$serializedExtraInfo = unserialize($contractInfo['serialized_extra_info']);
if (!empty($serializedExtraInfo['featured_profile']) && !empty($userInfo['featured'])) {
$contracts = SJB_ContractManager::getAllContractsInfoByUserSID($userInfo['sid']);
$isFeatured = 0;
foreach ($contracts as $contract) {
if ($contract['id'] != $contractExpiredID) {
$serializedExtraInfo = unserialize($contract['serialized_extra_info']);
if (!empty($serializedExtraInfo['featured'])) {
$isFeatured = 1;
}
}
}
if (!$isFeatured) {
SJB_UserManager::removeFromFeaturedBySID($userInfo['sid']);
}
}
if (SJB_UserNotificationsManager::isUserNotifiedOnContractExpiration($contractInfo['user_sid'])) {
SJB_Notifications::sendUserContractExpiredLetter($userInfo, $contractInfo, $productInfo);
}
// notify admin
SJB_AdminNotifications::sendAdminUserContractExpiredLetter($userInfo['sid'], $contractInfo, $productInfo);
SJB_ContractManager::deleteContract($contractExpiredID, $contractInfo['user_sid']);
}
//////////////////////// Send remind notifications about expiration of contracts
// 1. get user sids and days count of 'remind subscription notification' setting = 1 from user_notifications table
// 2. foreach user:
// - get contracts with that expiration remind date
// - check every contract sid in DB table of sended. If sended - remove from send list
// - send notification with contracts to user
// - write contract sid in DB table of sended contract notifications
$notificationData = SJB_UserNotificationsManager::getUsersAndDaysOnSubscriptionExpirationRemind();
foreach ($notificationData as $elem) {
$userSID = $elem['user_sid'];
$days = $elem['days'];
$contractSIDs = SJB_ContractManager::getContractsIDByDaysLeftToExpired($userSID, $days);
if (empty($contractSIDs)) {
continue;
}
$contractsInfo = array();
// check contracts sended
foreach ($contractSIDs as $key => $sid) {
if (SJB_ContractManager::isContractNotificationSended($sid)) {
unset($contractSIDs[$key]);
continue;
}
$info = SJB_ContractManager::getInfo($sid);
$info['extra_info'] = !empty($info['serialized_extra_info']) ? unserialize($info['serialized_extra_info']) : '';
$contractsInfo[$sid] = $info;
}
if (!empty($contractsInfo)) {
// now only unsended contracts we have in array
// send contract notification
foreach ($contractSIDs as $sid) {
SJB_Notifications::sendRemindSubscriptionExpirationLetter($userSID, $contractsInfo[$sid], $days);
}
// write contract id in DB table of sended contract notifications
SJB_ContractManager::saveContractIDAsSendedNotificationsTable($contractSIDs);
}
}
// delete applications with no employer and job seeker
$emptyApplications = SJB_DB::query('SELECT `id` FROM `applications` WHERE `show_js` = 0 AND `show_emp` = 0');
foreach ($emptyApplications as $application) {
SJB_Applications::remove($application['id']);
}
// NEWS
$expiredNews = SJB_NewsManager::getExpiredNews();
foreach ($expiredNews as $article) {
SJB_NewsManager::deactivateItemBySID($article['sid']);
}
// LISTING XML IMPORT
SJB_XmlImport::runImport();
// UPDATE PAGES WITH FUNCTION EQUAL BROWSE(e.g. /browse-by-city/)
SJB_BrowseDBManager::rebuildBrowses();
//-------------------sitemap generator--------------------//
SJB_System::executeFunction('miscellaneous', 'sitemap_generator');
// CLEAR `error_log` TABLE
$errorLogLifetime = SJB_System::getSettingByName('error_log_lifetime');
$lifeTime = strtotime("-{$errorLogLifetime} days");
if ($lifeTime > 0) {
SJB_DB::query('DELETE FROM `error_log` WHERE `date` < ?t', $lifeTime);
}
SJB_Settings::updateSetting('task_scheduler_last_executed_date', $this->currentDate);
$this->tp->assign('expired_listings_id', $listingsExpiredID);
$this->tp->assign('deactivated_listings_id', $listingsDeactivatedID);
$this->tp->assign('expired_contracts_id', $contractsExpiredID);
$this->tp->assign('notified_saved_searches_id', $this->notifiedSavedSearchesSID);
$schedulerLog = $this->tp->fetch('task_scheduler_log.tpl');
SJB_HelperFunctions::writeCronLogFile('task_scheduler.log', $schedulerLog);
SJB_DB::query('INSERT INTO `task_scheduler_log`
(`last_executed_date`, `notifieds_sent`, `expired_listings`, `expired_contracts`, `log_text`)
VALUES ( NOW(), ?n, ?n, ?n, ?s)', count($this->notifiedSavedSearchesSID), count($listingsExpiredID), count($contractsExpiredID), $schedulerLog);
SJB_System::getModuleManager()->executeFunction('social', 'linkedin');
SJB_System::getModuleManager()->executeFunction('social', 'facebook');
SJB_System::getModuleManager()->executeFunction('classifieds', 'linkedin');
SJB_System::getModuleManager()->executeFunction('classifieds', 'facebook');
SJB_System::getModuleManager()->executeFunction('classifieds', 'twitter');
SJB_Event::dispatch('task_scheduler_run');
}