当前位置: 首页 > news >正文

wordpress 加ico贵阳seo网站建设

wordpress 加ico,贵阳seo网站建设,厦门人才网唯一官网,河北邯郸网站建设公司环境#xff1a;Windows 11、python 3.12.3、Django 4.2.11、 APScheduler 3.10.4 背景#xff1a;工作需要使用且用法较为复杂#xff0c;各种功能基本都使用了 事件#xff1a;20240920 说明#xff1a;记录#xff0c;方便后期自己查找 1、搭建基础环境 文件结构图…环境Windows 11、python 3.12.3、Django 4.2.11、 APScheduler 3.10.4 背景工作需要使用且用法较为复杂各种功能基本都使用了 事件20240920 说明记录方便后期自己查找 1、搭建基础环境 文件结构图 蓝色代表文件黑色代表目录主要是django自动生成的文件以及apscheduler需要的文件 包括Django、APScheduler两个代码如下 新建scheduler文件 创建调度器并配置启动函数 # scheduleJob\scheduler.pyfrom apscheduler.schedulers.background import BackgroundScheduler from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor from django_apscheduler.jobstores import DjangoJobStore from pytz import timezone, utc# 第二种方式内嵌 jobstores {default: DjangoJobStore()} executors {default: ThreadPoolExecutor(20), processpool: ProcessPoolExecutor(5)} job_defaults { # 该参数既可以在创建scheduler对象时使用也可以用在add_job中对象范围广、优先级低coalesce: True, # 是否合并积压的任务。如果设置为 True当任务运行时间落后时会只运行一次而不是运行多次。默认值为 False。max_instances: 2, # 允许的最大作业实例数。确保同一任务在同一时间不会有多个实例运行。默认值为 1。misfire_grace_time: 30, # 设置任务错过其执行时间的容忍时间以秒为单位。如果任务在这个时间内错过了执行时间将立即执行。如果设置为 None则没有时间限制。replace_existing: True # 如果添加的任务ID已存在是否替换现有任务。默认值为 False。 } scheduler BackgroundScheduler(jobstoresjobstores, executorsexecutors, job_defaultsjob_defaults, timezonetimezone(Asia/Shanghai))def start():scheduler.start()在settings文件中添加应用并配置数据库 # scheduleJob\settings.pyINSTALLED_APPS [# ...django_apscheduler,testapscheduler, ] ROOT_URLCONF scheduleJob.urls DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: scheduler,USER: root,PASSWORD: 123456,HOST: localhost,PORT: 3306,} } LANGUAGE_CODE en-us TIME_ZONE Asia/Shanghai USE_I18N True USE_TZ False 在apps中实现启动调度器 # testapscheduler\apps.pyfrom django.apps import AppConfigclass TestapschedulerConfig(AppConfig):default_auto_field django.db.models.BigAutoFieldname testapschedulerprint(启动)def ready(self):from scheduleJob import schedulerscheduler.start() 在url中配置路由 # scheduleJob\urls.pyfrom django.contrib import admin from django.urls import path from testapscheduler.views import operate_taskurlpatterns [path(admin/, admin.site.urls),path(operate_task/, operate_task), ] 在views文件中实现真正的逻辑处理 # testapscheduler\views.pyfrom scheduleJob.scheduler import scheduler from django.http import HttpResponse from datetime import datetime from django.views.decorators.csrf import csrf_exemptimport time, json# Create your views here. csrf_exemptdef operate_task(request):# 动态任务id, 利用时间戳获取整数如一秒内添加两个则会出现bugp request.POST.get(id)print(p, )my_task_id int(datetime.timestamp(datetime.now()))# job参数job_kwargs {func:excute_task, # job的函数id:str(my_task_id), # 添加的jobid, 必须是字符串name:ftask_{my_task_id}, # 添加的job名称kwargs:{info:test}, # job的函数参数本例中excute_task需要的参数next_run_time: datetime.now(), # 添加任务成功后立即执行replace_existing: True, misfire_grace_time: 10, coalesce: True, max_instances: 10, trigger: interval, # 任务执行类型还有date、cronseconds: 10, # 任务执行间隔时间代表每10s执行一次}scheduler.add_job(**job_kwargs)# scheduler.remove_all_jobs()return HttpResponse(add task success)def excute_task(info):time.sleep(3)print(info, --------------------------------, datetime.now()) 数据库迁移  运行前先执行数据库迁移 python manage.py makemigrationspython manage.py migrate# 前者是将model层转为迁移文件migration # 后者将新版本的迁移文件执行更新数据库。 会在数据库生成两个表引用方法如下 from django_apscheduler.models import DjangoJob, DjangoJobExecution django_apscheduler_djangojob对应Django中的DjangoJob共计三个字段分别为id、next_run_time、job_state默认排序字段为next_run_time django_apscheduler_djangojobexecution对应Django中的DjangoJobExecution共计八个字段分别是id、status、run_time、duration、finished、exception、traceback、job_id。 postman请求测试 在postman中请求路由代码如下 # postman生成的请求代码import requests import jsonurl localhost:8000/operate_task/payload json.dumps({action: start,id: 1 }) headers {Content-Type: application/json }response requests.request(POST, url, headersheaders, datapayload)print(response.text)实现效果 test -------------------------------- 2024-09-20 15:13:58.165250 test -------------------------------- 2024-09-20 15:13:58.165250 test -------------------------------- 2024-09-20 15:14:04.469140 test -------------------------------- 2024-09-20 15:14:04.469140 任务状态 #: constant indicating a schedulers stopped state STATE_STOPPED 0 #: constant indicating a schedulers running state (started and processing jobs) STATE_RUNNING 1 #: constant indicating a schedulers paused state (started but not processing jobs) STATE_PAUSED 2 2、调度器动态操作 1、查询所有任务 # testapscheduler\views.py# ......csrf_exempt def query_all_task(request):# 查看所有任务job_list scheduler.get_jobs()return JsonResponse([{x.name:x.id} for x in job_list], safeFalse) 响应 [{task_1726812545: 1726812545},{task_1726816011: 1726816011} ] 2、查询某个任务 csrf_exempt def get_job(request):# 查询任务是否存在job_id loads(request.body).get(id)msg scheduler.get_job(job_idjob_id)print(msg)return JsonResponse({msg:success}) 3、移除所有任务 csrf_exempt def remove_all_jobs(request):# 移除所有任务, 事件代码是256scheduler.remove_all_jobs()return JsonResponse({msg:success}) 4、移除某个任务 csrf_exempt def remove_job(request):# 移除某个任务, 事件代码是1024job_id loads(request.body).get(id)scheduler.remove_job(job_idjob_id)return JsonResponse({msg:success}) 5、暂停某个任务 csrf_exempt def pause_job(request):# 暂停某个任务, 事件代码是2048job_id loads(request.body).get(id)scheduler.pause_job(job_idjob_id)return JsonResponse({msg:success}) 6、恢复某个任务 csrf_exempt def resume_job(request):# 恢复某个任务仅能恢复已暂停的任务, 事件代码是2048job_id loads(request.body).get(id)scheduler.resume_job(job_idjob_id)return JsonResponse({msg:success}) 7、添加某个任务 csrf_exempt def add_job(request):# 添加任务, 事件代码是512kwargs loads(request.body)scheduler.add_job(**kwargs)return JsonResponse({msg:success}) 8、修改某个任务 csrf_exempt def modify_job(request):# 恢复某个任务仅能恢复已暂停的任务, 事件代码是2048job_id loads(request.body).get(id)changes loads(request.body).get(changes)scheduler.modify_job(job_idjob_id, changeschanges)return JsonResponse({msg:success}) 9、打印所有任务信息 csrf_exempt def print_jobs(request):# 打印所有任务信息scheduler.print_jobs()return JsonResponse({msg:success}) 10、启动调度器 csrf_exempt def start(request):# 调度程序启动, 事件代码是1scheduler.start()return JsonResponse({msg:success}) 11、关闭调度器 csrf_exempt def shutdown(request):# 调度程序关闭, 事件代码是2scheduler.shutdown()return JsonResponse({msg:success}) 12、暂停调度器 csrf_exempt def pause(request):# 调度程序暂停, 事件代码是4scheduler.pause()return JsonResponse({msg:success}) 13、恢复调度器 csrf_exempt def resume(request):# 调度程序恢复, 事件代码是8scheduler.resume()return JsonResponse({msg:success}) 14、添加执行器 csrf_exempt def add_executor(request):# 调度程序添加执行器, 事件代码是16executors {default: ThreadPoolExecutor(20), processpool: ProcessPoolExecutor(5)}scheduler.add_executor(executorexecutors) 15、删除执行器 csrf_exempt def remove_executor(request):# 调度程序删除执行器, 事件代码是32alias loads(request.body).get(alias)scheduler.remove_executor(aliasalias)return JsonResponse({msg:success}) 16、添加作业存储器 csrf_exempt def add_jobstore(request):# 调度程序添加作业存储器, 事件代码是64jobstores {default: DjangoJobStore()}scheduler.add_jobstore(jobstoresjobstores) 17、删除作业存储器 csrf_exempt def remove_jobstore(request):# 调度程序删除作业存储器, 事件代码是128alias loads(request.body).get(alias)scheduler.remove_jobstore(aliasalias)return JsonResponse({msg:success}) 18、修改触发器参数 csrf_exempt def reschedule_job(request):# 调度程序修改触发器参数job_id loads(request.body).get(job_id)trigger_args loads(request.body).get(trigger_args)scheduler.reschedule_job(trigger_argstrigger_args, job_idjob_id)return JsonResponse({msg:success}) 未完待续 ······
http://www.hkea.cn/news/14292674/

相关文章:

  • 网站建设公司华网天兰州迅豹网络
  • 建设银行广东分行网站玄圭做网站怎么样
  • 怎么删除ghost wordpress镇海阿里巴巴关键词优化
  • 茂名建站模板搭建现在用什么做网站
  • 做商城网站需要备案什么域名回收手表网站
  • 企业网站开发技术题库网站策划选题
  • 电子商务网站建设目标及利益分析兽装定制网站
  • 福州 网站备案衡水企业网站建设价格
  • wordpress网站缓存安装织梦cms是什么
  • 做快手网站怎么部署wordpress
  • 做网站哪家正规环保网站查询碾米是否做备案
  • 网站设计评语外贸做的社交网站
  • 模板网站建设青岛广告费内包括网站建设
  • 带数据库网站模板小型教育网站开发
  • 分类信息建站系统网络连接
  • 网站广告出价平台门户网站建设管理工作
  • 装修设计网站源码网页设计图片位置
  • 郑州企业网站制作怎么做网站 优化手机版
  • 中土建设集团有限公司网站淘宝网站c 设计怎么做的
  • wordpress网站建小程序搜狗推广和百度推广哪个好
  • 新网做网站流程网页制作与网站建设》在线作业 答案
  • 北京丰台网站建设太原网页设计公司
  • 网站背景图西安网站建设hyk123
  • 网站建设干货宁津网站设计
  • 自己做网站怎么搜索免费网站制作成品
  • 自助建站系统源码下载wordpress安卓源代码
  • 市场营销策划公司seo兼职
  • 网站上的付费文章怎么做wordpress中文cms
  • 潍坊路通工程建设有限公司网站wordpress每个文章底部
  • 政务信息公开和网站建设自评链接分析属于网站开发