diff --git a/app/Console/Tasks/OptimizeTableTask.php b/app/Console/Tasks/OptimizeTableTask.php deleted file mode 100644 index 97f3e2ac..00000000 --- a/app/Console/Tasks/OptimizeTableTask.php +++ /dev/null @@ -1,139 +0,0 @@ -optimizeUserSessionTable(); - $this->optimizeUserTokenTable(); - $this->optimizeImMessageTable(); - $this->optimizeLearningTable(); - $this->optimizeTaskTable(); - } - - protected function optimizeUserSessionTable() - { - $sessionModel = new UserSessionModel(); - - $tableName = $sessionModel->getSource(); - - if (UserSessionModel::count() < 1000000) { - echo sprintf('no need to optimize table: %s', $tableName) . PHP_EOL; - return; - } - - echo sprintf('------ start optimize table: %s ------', $tableName) . PHP_EOL; - - $this->db->delete($tableName, 'expire_time < :expire_time', [ - 'expire_time' => strtotime('-3 days'), - ]); - - $this->db->execute("OPTIMIZE TABLE {$tableName}"); - - echo sprintf('------ end optimize table: %s ------', $tableName) . PHP_EOL; - } - - protected function optimizeUserTokenTable() - { - $tokenModel = new UserTokenModel(); - - $tableName = $tokenModel->getSource(); - - if (UserTokenModel::count() < 1000000) { - echo sprintf('no need to optimize table: %s', $tableName) . PHP_EOL; - return; - } - - echo sprintf('------ start optimize table: %s ------', $tableName) . PHP_EOL; - - $this->db->delete($tableName, 'expire_time < :expire_time', [ - 'expire_time' => strtotime('-3 days'), - ]); - - $this->db->execute("OPTIMIZE TABLE {$tableName}"); - - echo sprintf('------ end optimize table: %s ------', $tableName) . PHP_EOL; - } - - protected function optimizeImMessageTable() - { - $messageModel = new ImMessageModel(); - - $tableName = $messageModel->getSource(); - - if (ImMessageModel::count() < 1000000) { - echo sprintf('no need to optimize table: %s', $tableName) . PHP_EOL; - return; - } - - echo sprintf('------ start optimize table: %s ------', $tableName) . PHP_EOL; - - $this->db->delete($tableName, 'create_time < :create_time', [ - 'create_time' => strtotime('-6 months'), - ]); - - $this->db->execute("OPTIMIZE TABLE {$tableName}"); - - echo sprintf('------ end optimize table: %s ------', $tableName) . PHP_EOL; - } - - protected function optimizeLearningTable() - { - $learningModel = new LearningModel(); - - $tableName = $learningModel->getSource(); - - if (LearningModel::count() < 1000000) { - echo sprintf('no need to optimize table: %s', $tableName) . PHP_EOL; - return; - } - - echo sprintf('------ start optimize table: %s ------', $tableName) . PHP_EOL; - - $this->db->delete($tableName, 'create_time < :create_time', [ - 'create_time' => strtotime('-6 months'), - ]); - - $this->db->execute("OPTIMIZE TABLE {$tableName}"); - - echo sprintf('------ end optimize table: %s ------', $tableName) . PHP_EOL; - } - - protected function optimizeTaskTable() - { - $taskModel = new TaskModel(); - - $tableName = $taskModel->getSource(); - - if (TaskModel::count() < 1000000) { - echo sprintf('no need to optimize table: %s', $tableName) . PHP_EOL; - return; - } - - echo sprintf('------ start optimize table: %s ------', $tableName) . PHP_EOL; - - $this->db->delete($tableName, 'create_time < :create_time AND status > :status', [ - 'create_time' => strtotime('-6 months'), - 'status' => TaskModel::STATUS_PENDING, - ]); - - $this->db->execute("OPTIMIZE TABLE {$tableName}"); - - echo sprintf('------ end optimize table: %s ------', $tableName) . PHP_EOL; - } - -} \ No newline at end of file diff --git a/app/Library/CsrfToken.php b/app/Library/CsrfToken.php index 323a4175..e5ba0e95 100644 --- a/app/Library/CsrfToken.php +++ b/app/Library/CsrfToken.php @@ -7,6 +7,7 @@ namespace App\Library; +use Phalcon\Config; use Phalcon\Crypt; use Phalcon\Di; use Phalcon\Text; @@ -19,7 +20,7 @@ class CsrfToken */ protected $crypt; - protected $lifetime = 600; + protected $lifetime = 86400; protected $delimiter = '@@'; @@ -33,7 +34,7 @@ class CsrfToken public function getToken() { $content = [ - time() + $this->lifetime, + $this->getExpiredTime(), $this->fixed, Text::random(8), ]; @@ -62,4 +63,16 @@ class CsrfToken return true; } + protected function getExpiredTime() + { + /** + * @var $config Config + */ + $config = Di::getDefault()->getShared('config'); + + $lifetime = $config->path('csrf_token.lifetime') ?: $this->lifetime; + + return $lifetime + time(); + } + } \ No newline at end of file diff --git a/config/config.default.php b/config/config.default.php index 924f027d..41836295 100644 --- a/config/config.default.php +++ b/config/config.default.php @@ -117,6 +117,11 @@ $config['metadata']['lifetime'] = 7 * 86400; */ $config['annotation']['lifetime'] = 7 * 86400; +/** + * CsrfToken有效期(秒) + */ +$config['csrf_token']['lifetime'] = 86400; + /** * 允许跨域 */ diff --git a/scheduler.php b/scheduler.php index 70217971..6ff34493 100644 --- a/scheduler.php +++ b/scheduler.php @@ -99,7 +99,4 @@ $scheduler->php($script, $bin, ['--task' => 'sitemap', '--action' => 'main']) $scheduler->php($script, $bin, ['--task' => 'teacher_live_notice', '--action' => 'provide']) ->daily(4, 7); -$scheduler->php($script, $bin, ['--task' => 'optimize_table', '--action' => 'main']) - ->weekly(6, 5, 3); - $scheduler->run();