为Unreal添加一个定时运行的功能模块

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:
  在unreal中,有时需要根据自已的需要添加自已的定时运行的功能程序,如果你想实现这样的功能,请按照下列步骤进行,以我添加的定时检查Mysql连接情况(因为Mysql系统默认48还是多少小时后断开一个不活动的连接,如果在这个时间内,收到连接的mysql_ping消息,则该连接不会断掉):

      1,在include\h.h文件最末,添加如下定义:
extern  EVENT(check_mysql_conn);

      2,在src\events.c 212行附件,修改为如下代码:
     /*  Start events  */
    
// add by oldhawk
    EventAddEx(NULL,  " check_mysql_conn " 600 0 , check_mysql_conn, NULL); //这里的600表是3分钟执行一次
    
// add end
    EventAddEx(NULL,  " tunefile " 300 0 , save_tunefile, NULL);
    EventAddEx(NULL, 
" garbage " , GARBAGE_COLLECT_EVERY,  0 , garbage_collect, NULL);

      3,继续,在src\events.c最后,添加如下代码:
// add by oldhawk
EVENT(check_mysql_conn)
{
    
if (strcmp(MYSQL_HOST, " 0 " )){
        
// ircd_log(LOG_SERVER,"in event check_mysql_conn");
         if ( ! my_conn){     // 数据库未连接,可能是首次起动
            ircd_log(LOG_CLIENT, " Begin to connect to Mysql " );

            my_conn
= my_mysql_connect();
            
if ( ! my_conn){
                sendto_ops(
" Mysql 数据库服务器出现故障,请通知管理员排除! " );
                ircd_log(LOG_SERVER,
" Mysql Connect : ERROR! " );
                
return ;
            }
else {
                mysql_query(my_conn,
" SET NAMES 'gb2312' " ); 
                ircd_log(LOG_SERVER,
" Mysql Connect : OK! " );
            }
        }
else {             // 数据库已连接,则测试激活
             if (my_mysql_ping(my_conn) != 0 ){
                ircd_log(LOG_SERVER,
" Mysql Ping : mysql ping error " );
                my_conn
= my_mysql_connect();
                
if ( ! my_conn){
                    sendto_ops(
" Mysql 数据库服务器出现Ping故障,请通知管理员排除! " );
                    ircd_log(LOG_SERVER,
" Mysql Ping reConnect : ERROR! " );
                    
return ;
                }
else {
                    mysql_query(my_conn,
" SET NAMES 'gb2312' " ); 
                    ircd_log(LOG_SERVER,
" Mysql Ping reConnect : OK! " );
                }
            }
else {
                ircd_log(LOG_SERVER,
" Mysql Ping: OK! " );
            }
        }
    }
}
// add end


    本文转自 OldHawk  博客园博客,原文链接:http://www.cnblogs.com/taobataoma/archive/2007/07/28/834868.html ,如需转载请自行联系原作者


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
348
分享
相关文章
|
11月前
|
Python 自动化指南(繁琐工作自动化)第二版:十七、计时、安排任务和启动程序
Python 自动化指南(繁琐工作自动化)第二版:十七、计时、安排任务和启动程序
129 1
|
4月前
|
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
323 61
智能排班系统 【web前端/小程序结构介绍+开发环境介绍+项目启动】
智能排班系统 【web前端/小程序结构介绍+开发环境介绍+项目启动】
255 1
【PyAutoGUI操作指南】01 三分钟快速实现跨平台GUI自动化模块
作为安全功能,默认情况下启用故障保护功能。当调用PyAutoGUI函数时,如果鼠标位于主监视器的四个角中的任何一个,它们将引发PyAutoGUI.FailSafeException。在调用每个PyAutoGUI函数后,会有十分之一秒的延迟,以便用户有时间将鼠标猛击到角落以触发故障保险。
653 0
使用 Playwright 脚本录制简化自动化测试:完全指南
Playwright提供了一种脚本录制功能,帮助开发者通过交互式操作自动生成测试脚本,提升测试效率。使用Playwright的命令行工具`codegen`,如`playwright codegen python <url>`,可以记录浏览器操作并生成Python测试脚本。生成的脚本使用Playwright API模拟用户交互,如`page.click()`和`page.fill()`。这种方法简化了自动化测试脚本的编写,促进了测试流程的加速。
Python 自动化指南(繁琐工作自动化)第二版:二十、使用 GUI 自动化控制键盘和鼠标
Python 自动化指南(繁琐工作自动化)第二版:二十、使用 GUI 自动化控制键盘和鼠标
323 0
Appium自动化如何控制多设备并行执行
前言:     如何做到,控制多设备并行执行测试用例呢。
|
11月前
|
使用Ruby编写的电脑监控软件:自动化任务管理与运行状态监测
本文介绍了一款使用Ruby编写的电脑监控软件,该软件通过自动化任务管理和系统状态监测提供便利的系统管理。示例代码展示了如何定义任务类、运行任务、检查系统状态并在异常时发送通知。此外,还说明了如何将监控数据自动提交到网站以进行进一步分析,从而确保系统稳定运行。
362 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等