首页
关于
Search
1
git lg彩色显示日志
24 阅读
2
在 Ubuntu 22.04 LTS 中安装 Docker
19 阅读
3
CentOs/Ubuntu搭建上网x-ui
18 阅读
4
git使用多个源和多个分支
15 阅读
5
git保存账号密码
14 阅读
默认分类
网站搭建
Windows
Linux
Docker
OpenWrt
Hackintosh
Git
Python
Pandas
Web开发
JavaScript
FFmpeg
Demo
工具
刷机
油猴脚本
Excel
Chrome Extension
登录
Search
标签搜索
Pandas
读取
时区
Chrome
centos8
求和
Nginx
Typecho
404
csv
国际站
询盘导出
油猴脚本
bbr
Ubuntu
远程桌面
日志
log
数据清洗
打印机
野生程序猿
累计撰写
151
篇文章
累计收到
0
条评论
首页
栏目
默认分类
网站搭建
Windows
Linux
Docker
OpenWrt
Hackintosh
Git
Python
Pandas
Web开发
JavaScript
FFmpeg
Demo
工具
刷机
油猴脚本
Excel
Chrome Extension
页面
关于
搜索到
151
篇与
的结果
2023-11-26
人脸搜索引擎
人脸搜索facecheck.id https://facecheck.id/zhyandex https://facecheck.id/zh
2023年11月26日
1 阅读
0 评论
0 点赞
2023-11-25
uwsgi下apscheduler定时任务不启动
uwsgi启动后在没有请求的时候,部分进程会被挂起,需在uwsgi.ini中增加如下配置:# flask_apscheduler配置 enable-threads = true preload = true lazy-apps = true
2023年11月25日
3 阅读
0 评论
0 点赞
2023-11-25
uwsgi下apscheduler定时任务启动多次的解决办法
在Web应用的开发中,有时我们需要定时执行一些任务,比如每天早上8点执行一次特定的任务。而在uWSGI这样的应用服务器环境下,我们需要确保任务只在一个进程中运行,避免重复执行。为了实现这一目标,我们可以使用文件锁来同步多个uWSGI worker进程。使用APScheduler定时任务首先,我们使用APScheduler库来创建定时任务。在这个示例中,我们定义了一个名为daily_update_task的任务,它将在每天早上8点执行。from apscheduler.schedulers.background import BackgroundScheduler from apscheduler.triggers.cron import CronTrigger from flask import Flask app = Flask(__name__) def daily_update_task(): with app.app_context(): print('daily_update_task starts...') scheduler = BackgroundScheduler() scheduler.add_job(daily_update_task, trigger=CronTrigger.from_crontab('1 8 * * *')) 使用文件锁确保单一运行接下来,我们使用文件锁来确保只有一个uWSGI worker进程可以创建并运行daily_update_task任务。我们通过fcntl模块获取文件锁,然后创建并启动BackgroundScheduler。import fcntl import os def start_scheduler(): # 获取当前脚本的绝对路径 script_path = os.path.abspath(__file__) # 使用文件锁 lock_file = open(script_path + '.lock', 'w') try: # 尝试获取锁,如果获取失败说明已经有其他实例在运行 fcntl.flock(lock_file, fcntl.LOCK_EX | fcntl.LOCK_NB) # 创建并启动调度器 scheduler = BackgroundScheduler() scheduler.add_job(daily_update_task, trigger=CronTrigger.from_crontab('1 8 * * *')) scheduler.start() # 阻塞当前进程,保持文件锁 while True: pass except IOError: # 文件锁已被其他进程获取,说明已经有一个实例在运行 print("Another instance is already running.") finally: # 释放文件锁 lock_file.close() if __name__ == '__main__': start_scheduler() 这样,我们就确保了在uWSGI下只有一个进程创建并运行了定时任务。当其他进程尝试运行时,它们会检测到文件锁已被获取,从而避免了重复执行任务。总结在uWSGI环境下,使用文件锁是一种有效的方法来确保定时任务只在一个进程中运行。通过以上代码,我们成功地创建了一个daily_update_task任务,并使用文件锁避免了多个进程重复运行任务的问题。这对于需要定时执行任务的Web应用是一个实用的技术手段。
2023年11月25日
1 阅读
0 评论
0 点赞
2023-11-22
PVE常用路径
iso路径# 系统分区 /var/lib/vz/template/iso/ # 挂载分区 /mnt/pve/backup1/template/iso/
2023年11月22日
1 阅读
0 评论
0 点赞
2023-11-12
qinglong容器禁用频繁上传日志方法
1.qinglong容器使用了sentry.io来每隔10秒上传一次数据,域名为o1098464.ingest.sentry.io2.临时解决办法,把域名指向本地ip即可。但直接修改文件每次重启容器hosts文件会重置,因此需要在容器入口处执行修改。# 先进入容器 docker exec -it xxxx bash #xxxx为容器名 # 修改这个文件 vi docker/docker-entrypoint.sh3.在文件末尾crond -f >/dev/null之前加入以下代码echo "127.0.0.1 o1098464.ingest.sentry.io" >> /etc/hosts4.退出容器重启生效
2023年11月12日
4 阅读
0 评论
0 点赞
1
...
10
11
12
...
31