#!/usr/bin/env php <?php //Send email by Gearman queue require __DIR__ . '/../init_autoloader.php'; $appName = isset($argv[1]) ? $argv[1] : null; $engine = new \Eva\EvaEngine\Engine(__DIR__ . '/..'); if ($appName) { $engine->setAppName($appName); } $engine->loadModules(include __DIR__ . '/../config/modules.' . $engine->getAppName() . '.php')->bootstrap(); $worker = $engine->getDI()->getWorker(); $worker->addFunction('sendmailAsync', 'sendmailAsync'); $logger = new Phalcon\Logger\Adapter\File($engine->getDI()->getConfig()->logger->path . 'worker_sendmail.log'); $logger->info(sprintf("Sendmail worker started by appname %s", $engine->getAppName())); //MySQL interactive_timeout after 8 hours function refreshDbConnect() { global $engine; $di = $engine->getDI(); $di->getDbMaster()->connect(); $di->getDbSlave()->connect(); } function sendmailAsync($job) { global $engine; global $logger; $jobString = $job->workload(); $logger->info(sprintf("Start sending mail by %s", $jobString)); echo sprintf("Start sending mail by %s \n", $jobString); try { $work = json_decode($jobString, true);
public static function log(Exception $e) { //错误日志记录 if (\Phalcon\DI::getDefault()->getShared('config')->log->file) { $logger = new \Phalcon\Logger\Adapter\File(APP_PATH . '/common/logs/' . date('Ymd') . '.log', array('mode' => 'a+')); $logger->error(get_class($e) . '[' . $e->getCode() . ']: ' . $e->getMessage()); $logger->info($e->getFile() . '[' . $e->getLine() . ']'); $logger->debug("Trace: \n" . $e->getTraceAsString() . "\n"); $logger->close(); } if (\Phalcon\DI::getDefault()->getShared('config')->log->debug) { \App\Controllers\ControllerCommon::instance()->exception($e); } else { \App\Controllers\ControllerCommon::instance()->exception('系统发生了错误,请联系管理员进行修复,错误代码:' . $e->getCode()); } }