阿里云网站备案要多久怎么做网站关键字

web/2025/10/5 19:36:54/文章来源:
阿里云网站备案要多久,怎么做网站关键字,开奖视频网站开发,帝国网站模板下载前言#xff1a;本博客仅作记录学习使用#xff0c;部分图片出自网络#xff0c;如有侵犯您的权益#xff0c;请联系删除 目录 定时任务模块APScheduler 一、安装及基本概念 1.1、APScheduler的安装 1.2、涉及概念 1.3、APScheduler的工作流程​编辑 二、配置调度器 …前言本博客仅作记录学习使用部分图片出自网络如有侵犯您的权益请联系删除 目录 定时任务模块APScheduler 一、安装及基本概念 1.1、APScheduler的安装 1.2、涉及概念 1.3、APScheduler的工作流程​编辑 二、配置调度器 三、启动调度器 四、调度事件监听 定时任务模块APScheduler APScheduler提供了基于日期、固定时间间隔以及crontab类型的任务我们可以在主程序的运行过程中快速增加新作业或删除旧作业。如果把作业存储在数据库中那么作业的状态会被保存当调度器重启时不必重新添加作业作业会恢复原状态继续执行。 一、安装及基本概念 1.1、APScheduler的安装 pip install apscheduler 1.2、涉及概念 触发器triggers触发器包含调度逻辑描述一个任务何时被触发有按日期、按时间间隔、按cronjob描述式三种触发方式。每个作业都有自己的触发器除了初始配置之外触发器是完全无状态的。作业存储器job stores指定了作业被存放的位置默认的作业存储器是内存也可以将作业保存在各种数据库中。当作业被存放在数据库中时它会被序列化当重新被加载时会反序列化。作业存储器充当保存、加载、更新和查找作业的中间商。在调度器之间不能共享作业存储执行器executors执行器是将指定的作业调用函数提交到线程池或进程池中运行当任务完成时执行器通知调度器触发相应的事件。调度器schedulers任务调度器控制器角色通过它配置作业存储器、执行器和触发器、添加、修改和删除任务。调度器协调触发器、作业存储器、执行器的运行通常只有一个调度程序运行在应用程序中开发人员不需要直接处理作业存储器、执行器或触发器。配置作业存储器和执行器是通过调度器来完成的 1.3、APScheduler的工作流程 一个简单的间隔任务实例 import osfrom datetime import datetimefrom apscheduler.schedulers.blocking import BlockingScheduler​# 打印当前的时间def tick():print(Tick! The time is: %s % datetime.now())​if __name__ __main__:scheduler BlockingScheduler()# 添加一个作业rick触发器为interval每隔3秒执行一次scheduler.add_job(tick, interval, seconds3)print(Press Ctrl{0} to exit.format(Break if os.name nt else C))try:scheduler.start()except (KeyboardInterrupt, SystemExit):pass 另外的触发器为datecron。date按特定时间点触发cron则按固定的时间间隔触发。 上述代码稍作修改可变为cron类的定时任务 import osfrom datetime import datetimefrom apscheduler.schedulers.blocking import BlockingScheduler​def tick():print(Tick! The time is: %s % datetime.now())​if __name__ __main__:scheduler BlockingScheduler()scheduler.add_job(tick, cron, hour19,minute23)print(Press Ctrl{0} to exit.format(Break if os.name nt else C))try:scheduler.start()except (KeyboardInterrupt, SystemExit):pass 定时cron任务也非常简单直接给触发器trigger传入cron即可。hour19minute23表示每天的19时23分执行任务 hour19,minute23hour19,minute23minute*/3  # 表示每3分钟执行一次hour19-21,minute23  # 表示19:23、20:23、21:23各执行一次任务 二、配置调度器 调度器的主循环其实就是反复检查是否有到期需要执行的任务具体分两步进行 询问自己的每一个作业存储器有没有到期需要执行的任务。如果有则计算这些作业中每个作业需要 运行的时间点如果时间点有多个就做coalesce检查。 提交给执行器按时间点运行 各调度器的适用场景 BlockingSchduler适用于调度程序是进程中唯一运行的进程调用start函数会阻塞当前线程不能立即返回BackgroundScheduler适用于调度程序在应用程序的后台运行调用start后主线程不会阻塞。AsyncIOScheduler适用于使用了asyncio模块的应用程序GeventScheduler适用于使用了gevent模块的应用程序TwistedScheduler适用于构建Twisted的应用程序QtSchuduler适用于构建Qt的应用程序。 作业存储器的选择一是内存 默认而是数据库。 执行器的选择默认的ThreadPoolExecutor足够OK如果作业负载涉及CPU密集型操作那么考虑使用ProcessPoolExecutor甚至同时使用将其作为二级执行器。 APScheduler可以使用字典关键字参数传递配置调度器。首先实例化调度程序添加作业然后配置调度器获得最大的灵活性。 如果调度程序在应用程序的后台运行则选择BackgroundScheduler并使用默认的jobstore和executor from apscheduler.schedulers.blocking import BlockingSchedulerscheduler BlockingScheduler() 如果想配置更多的信息就可设置两个执行器、两个作业存储器、调整新作业的默认值并设置不同的时区。配置详情 配置名为mongo的MongoDBjobStore作业存储器配置名为default的SQLAlchemyJobStore使用SQLite配置名为default的ThreadPoolExecutor最大进程数为5UTC作为调度器的时区coalesce默认情况下关闭作业的默认最大运行实例限制为3 方法一 from pytz import utc​from apscheduler.schedulers.background import BlockingSchedulerfrom apscheduler.jobstores.mongodb import MongoDBJobStorefrom apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStorefrom apscheduler.executors.pool import ThreadPoolExecutor,ProcessPoolExecutor​jobstores {mongo:MongoDBJobStore(),default:SQLAlchemyJobStore(urlsqlite:///jobs.sqlite)}executors {default:ThreadPoolExecutor(20),processpool:ProcessPoolExecutor(5)}job_defaults {coalesce:False,max_instances:3}scheduler BlockingScheduler(jobstoresjobstores,executorsexecutors,job_defaultsjob_defaults,timezoneutc) 方法二 from apscheduler.schedulers.background import BlockingSchedulerscheduler BlockingScheduler({apscheduler.jobstores.mongo:{type:mongodb},apscheduler.jobstores.default:{type:sqlalchemy,url:sqlite:///jobs.sqlite},apscheduler.executors.default:{class:apscheduler.executors.pool:ThreadPoolExecutor,max_workers:5},apscheduler.job_defaults.coalesce:fasle,apscheduler.job_defaults.max_instances:3,apscheduler.timezone:UTC,}) 方法三 from pytz import utcfrom apscheduler.schedulers.background import BlockingSchedulerfrom apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStorefrom apscheduler.executors.pool import ThreadPoolExecutor,ProcessPoolExecutor​jobstores {mongo:{type:mongodb},default:SQLAlchemyJobStore(urlsqlite:///jobs.sqlite)}executors {default:{type:threadpool,max_workers:20},processpool:ProcessPoolExecutor(max_workers5)}job_defaults {coalesce:False,max_instances:3}scheduler BlockingScheduler()scheduler.configure(jobstoresjobstores,executorsexecutors,job_defaultsjob_defaults,timezoneutc) 三、启动调度器 启动调度器前需要先添加作业有两种方法可以向调度器添加作业一是通过接口add_job()二是通过使用函数装饰器其中add_job()返回一个apscheduler.job.Job类的实例用于后续修改或删除作业。 可以随时在调度器上调度作业。如果在添加作业时调度器还没有启动那么任务不会运行并且它的第一次运行时间在调度器启动时计算。 调用调度器的start()方法启动调度器下面用不同的作业存储器来举例 from apscheduler.schedulers.blocking import BlockingSchedulerimport datetimefrom apscheduler.jobstores.memory import MemoryJobStorefrom apscheduler.executors.pool import ThreadPoolExecutor,ProcessPoolExecutorf​def my_job(idmy_job):print(id,--,datetime.datetime.now())​jobstores {default:MemoryJobStore()}executors {default:ThreadPoolExecutor(20),processpool:ProcessPoolExecutor(10)}job_defaults {coalesce:False,max_instance:3}scheduler BlockingScheduler(jobstoresjobstores,executorsexecutors,job_defaultsjob_defaults)scheduler.add_job(my_job,args[job_interval,],idjob_interval,triggerinterval,seconds5,replace_existingTrue)scheduler.add_job(my_job,args[job_cron,],idjob_cron,triggercron,month4-8,5-6,hour7-11,second*/10,end_date2024-06-06)scheduler.add_job(my_job,args[job_once_now,],idjob_once_now)scheduler.add_job(my_job,args[job_date_once,],idjob_date_once,triggerdate,run_date2024-01-01 00:00:00)try:scheduler.start()except SystemExit:print(exit)exit() 方法二使用数据库作为作业存储器修改第5行和11行 from apscheduler.schedulers.blocking import BlockingSchedulerimport datetimefrom apscheduler.jobstores.memory import MemoryJobStorefrom apscheduler.executors.pool import ThreadPoolExecutor,ProcessPoolExecutorfrom apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore​def my_job(idmy_job):print(id,--,datetime.datetime.now())​jobstores {default:SQLAlchemyJobStore(urlsqlite:///jobs.sqlite)}executors {default:ThreadPoolExecutor(20),processpool:ProcessPoolExecutor(10)}job_defaults {coalesce:False,max_instance:3}scheduler BlockingScheduler(jobstoresjobstores,executorsexecutors,job_defaultsjob_defaults)scheduler.add_job(my_job,args[job_interval,],idjob_interval,triggerinterval,seconds5,replace_existingTrue)scheduler.add_job(my_job,args[job_cron,],idjob_cron,triggercron,month4-8,5-6,hour7-11,second*/10,end_date2024-06-06)scheduler.add_job(my_job,args[job_once_now,],idjob_once_now)scheduler.add_job(my_job,args[job_date_once,],idjob_date_once,triggerdate,run_date2024-01-01 00:00:00)try:scheduler.start()except SystemExit:print(exit)exit() 运行过之后如果不注释添加作业的代码则作业会重新添加到数据库中这样就有了两个作业为了避免这样的情况设置replace_existingTrue scheduler.add_job(my_job,args[job_interval,],idjob_interval,triggerinterval,seconds5,replace_existingTrue) 如果想运行错过运行的作业则使用misfire_grace_time scheduler.add_job(my_job,args[job_cron,],idjob_cron,triggercron,month4-8,5-6,hour7-11,second*/10,coalesceTrue,misfire_grace_time30,replace_existingTrue,end_date2024-06-06) 其他操作如下 scheduler.remove_job(job_id,jobstoreNone)      # 删除作业scheduler.remove_all_jobs(jobstoreNone)        # 删除所有作业scheduler.pause_job(job_id,jobstoreNone)       # 暂停作业scheduler.resume_job(job_id,jobstoreNone)      # 恢复作业scheduler.modify_job(job_id,jobstoreNone,**changes)    # 修改单个作业属性配置scheduler.reschedule_job(job_id,jobstoreNone,triggerNone,**trigger_args) # 修改单个作业的触发器并更新下次运行时间scheduler.print_jobs(jobstoreNone,outsys.stdout)      # 输出作业信息 四、调度事件监听 日志记录和事件监听 from apscheduler.schedulers.blocking import BlockingSchedulerfrom apscheduler.events import EVENT_JOB_EXECUTED,EVENT_JOB_ERRORimport datetimeimport logging​# 配置日志记录信息 logging.basicConfig(levellogging.INFO,format%(asctime)s %(filename)s[line:%(lineno)d %(levelname)s %(message)s,datefmt%Y-%m-%d %H:%M:%S,filenamelog1.txt,filemodea)​def aps_test(x):print(datetime.datetime.now().strftime(%Y-%m-%d %H:%M:%S),x)​def date_test(x):print(datetime.datetime.now().strftime(%Y-%m-%d %H:%M:%S),x)print(1/0)​def my_listener(event):if event.exception:print(任务出错了!!!!)else:print(任务照常运行...)​scheduler BlockingScheduler()scheduler.add_job(funcdate_test,args(一次性任务会出错,),next_run_timedatetime.datetime.now() datetime.timedelta(seconds15),iddate_task)scheduler.add_job(funcaps_test,args(循环任务,),triggerinterval,seconds3,idinterval_task)scheduler.add_listener(my_listener,EVENT_JOB_EXECUTED | EVENT_JOB_ERROR)scheduler._logger logging​scheduler.start() 致谢 在此我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者如果文章中有任何错误欢迎留言批评指正。 学习永无止境让我们共同进步

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87527.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站备案 公司网站建设和优化排名

接上一篇补充 git config --global user.name " " git config --global user.email 邮箱地址 配置用户名和邮箱 git commit 使其处于交互区,没有使用 -m,默认用vim 来编辑和提交信息 输入要提交的内容,然后按ESC建回到命令…

微网站功能列表彩票网站开发的

继续是机器学习课程的笔记,这节课会介绍逻辑回归。 分类问题 这节课会介绍的是分类问题,其结果是离散值。分类问题的例子有判断电子邮件是否是垃圾邮件;判断肿瘤是良性还是恶性;判断一次金融交易是否是欺诈等等。 首先从二元的…

哈尔滨大型网站建设电话策划运营

ThreeJS的动画系列分为:基础动画、相机控制、变形动画、用骨骼和蒙皮制作动画以及使用外部模型创建动画。用骨骼和蒙皮制作动画用骨骼来做动画时,移动一下骨骼,Three.js必须决定如何相应地迁移附着在骨骼上的皮肤,一起来看吧~~~举…

小程序推广模式和营销方案成都seo论坛

重置MYSQL密码后,Navicat连接报错:2003 - Can‘t connect to MySQL server on ‘127.0.0.1‘ (61 “Connection refused“) 报错如下 解决方法:勾选使用套接字文件

做视频网站需要什么服务器网站建设的编程语言

产品描述 本系列产品,是在该公司研制的专用超大规模集成电路的基础上,研发的点对点多业务光传输设备。此款产品提供4路视频,1-4路电话接口;1-16路开关量接口/1-8路RS232-422-485接口;4路千兆以太网接口(共享…

网站建设管理情况报告seo外链怎么做能看到效果

基于Pix4D使用无人机光学影像制作正射影像(DOM)和数字表面模型(DSM) 操作步骤 0. 前言1.获取无人机光学影像2.DOM和DSM3.操作步骤3.1 初始界面3.2 新建项目3.3查看处理过程报告3.4查看处理进度和成果 4.在ArcMap中打开DSM和DOM 0.…

哪个网站旅游攻略做的最好建设银行广西分行招聘网站

数据库的概念 数据库是按照数据结 构来组织、存储和管理数据的系统,它允许用户高效地存储、检索、更新和管理数据 database:用来组织,存储,管理数据的仓库 数据库的管理系统:DBMS,实现对数据的有效储值&am…

专业电商网站建设多少钱做网站注意事项

💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流! 💕&…

网站被墙301怎么做网站建设过程中的网站设计怎么做

今天跟大家分享一下,作为新手怎么样写出一篇阅读量过万的公众号的文章。 我的公众号是从2020年开始写的,写到今天差不多三年多一点。然后现在的粉丝数虽然不多,但也差不多近两千个了。 我这三年多差不多更新了150篇原创文章。刚开始的时候写的…

云主机建网站维纳斯式束腰Wordpress

ContentProvider ContentProvider 是 Android 中用于实现数据共享的一种组件,它可以让不同的应用程序之间共享数据。数据通常以表格的形式组织,类似于数据库的表。其他应用程序可以通过 ContentResolver 来查询或修改这些数据。 ContentProvider、Conten…

都安网站建设苏州人才网

实验十二 图查找 一、实验目的与要求 1)掌握拓扑排序的应用; 2)掌握查找的概念和算法; 3)掌握查找的基本原理以及各种算法的实现; 4)掌握查找的应用。 二、实验内容 1. 用邻接表建立一…

广德做网站设计开发苏州高新区核酸检测

背景CVPR 2019 是机器视觉方向最重要的学术会议,本届大会共吸引了来自全世界各地共计 5160 篇论文,共接收 1294 篇论文,投稿数量和接受数量都创下了历史新高,其中与自动驾驶相关的论文、项目和展商也是扎堆亮相,成为本…

常州优化网站手机网站平台

🚀 本文选自专栏:人工智能领域200例教程专栏 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的核心代码,详细讲解供大家学习,希望可以帮到大家。欢迎订阅支持,正在不断更新…

做汽车保养的网站上wordpress用什么开发工具

一、第一个代码案例1.1. HelloWorld案例1.1.1 代码执行流程我们写的代码都将以.java开头的文件保存,经过类编译器编译成.class的字节码文件,然后通过解释器翻译与机器交流1.1.1 代码执行流程1. 编写代码步骤首先定义一个类:public class 类名…

企业门户网站静态模板办公室装修注意事项

此为牛客Linux C课程和黑马Linux系统编程笔记。 1. 网络字节序 我们已经知道,内存中的多字节数据相对于内存地址有大端和小端之分。 磁盘文件中的多字节数据相对于文件中的偏移地址也有大端小端之分。网络数据流同样有大端小端之分,那么如何定义网络数…

网站需求怎么写网站接入商查询

QT(19)-QCamera 1 公有类型1.1 帧速率1.2 捕获模式1.3 错误类型1.4 摄像头锁定状态改变的原因1.5 摄像头锁定的整体状态1.6 摄像头可以应用锁定的类型1.7 QCamera::Position1.8 QCamera::State1.9 QCamera::Status 2 公有函数2.1 构造函数:2.2 析构函数:2.3 成员函数…

中山建网站哪家好仿站怎么修改成自己的网站

本文章来给各位同学介绍css怎样让英文字母数字自动换行且不断词方法总结,有需要了解的同学可进入参考。当一个定义了宽度的块状元素中填充的全部为纯英文或者纯数字的时候,在IE和FF中都会撑大容器,不会自动换行并且当数字或者英文中带有汉字时…

深圳宝安西乡网站建设免费企业黄页下载

目录 数据结构实验十 树遍历应用一、【实验目的】二、【实验内容】三、【实验源代码】⭐ CPP版⭐ c语言版 四、实验结果 数据结构实验十 树遍历应用 一、【实验目的】 1、了解树的建立方法 2、掌握树与二叉树的转化及其遍历的基本方法 3、掌握递归二叉树遍历算法的应用 二、…

网络科技网站排名互联网舆情处置公司

2024年7月15日,JumpServer开源堡垒机正式发布v4.0版本。在JumpServer开源堡垒机v4.0版本的设计过程中,JumpServer开源项目组继续秉持“内外兼修”的原则,并且开始迈步走向全球化,同时进一步提升用户的使用体验,真正用心…

多个域名绑定同一网站德州网站制作

2024年6月7日,深圳中赢娱乐控股集团受邀来到江西省宜春市袁州区就“短剧文旅”项目展开深度座谈,并与飞剑潭乡达成合作意向。 下午2:30,深圳中赢控股集团董事李平进带团队一行12人,访问宜春市袁州区,宜春市副市长谢萍、…