//URL解析支持 require_once APPROOT . PUBLIC_DIR_NAME . '/core/lib/base/filter__.php'; //过滤器支持,为“指令————Action调度”中间提供一道关卡 require_once APPROOT . PUBLIC_DIR_NAME . '/core/lib/base/action__.php'; //调度器支持 /* * 自动包含开发者指定的常量配置目录 * 开发者应该把所需的库文件或目录放置到USER_CONST_DIRS常量所指定的 目录中。 */ AiCore::includePhpWithEveryLayer(USER_CONFIG_DIRS); /* * 自动包含其它库 * 开发者应该把所需的库文件或目录放置到USER_LIB_DIRS常量所指定的 目录中。 * 指定的目录内所有层次目录的*.php都会被包含。 */ AiCore::includePhpWithEveryLayer(USER_LIB_DIRS); /* * 自动包含各种自定义实体类(Entity) */ AiCore::parseXxxFormatFromDirAndAutoIncludeTheir(APPROOT . ENTITY_DIR, 'entity'); /* * 自动包含各种自定义Filter */ // ActionUtil::parseXxxFilterFromFilterDirAndAutoIncludeTheir(); AiCore::parseXxxFormatFromDirAndAutoIncludeTheir(APPROOT . FILTER_DIR, 'filter'); /* * 自动包含各种自定义Action。 * 执行后,将等同于: * require_once APPROOT.PUBLIC_DIR_NAME.'/core/action/IndexAction.class.php'; //默认Action * require_once APPROOT.PUBLIC_DIR_NAME.'/core/action/TestAction.class.php'; //示例Action * ... ...
<?php //导入任务群集文件 AiCore::includePhpWithEveryLayer('core/setting/task/'); /* * If you want to simulate a crontask you must call this script once * and it will keep running forever (during server uptime) in the background * while "doing something" every specified seconds (= $interval): */ $file_oncetask = 'core/setting/oncetask.running'; echo "当前会话id:" . session_id() . '<br>'; //已经拿到session id,如何根据id终止其它会话(终止后就顺便把单例任务结束掉了)? //如何停止正在后台执行的脚本 //。。。。。 //如果标志文件存在,则视为已经启动了单例任务;否则,将创建该文件,并启动任务 if (!file_exists($file_oncetask)) { fopen($file_oncetask, 'w'); ai_exec_once(); //启动 } else { echo "该任务只允许单例运行"; } /** * 仅需要被启动一次的任务群集 */ function ai_exec_once() { ignore_user_abort(true); //忽略客户端中断连接 set_time_limit(0); //设置脚本执行时间不限