iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Django定时任务实现方法有哪些
  • 857
分享到

Django定时任务实现方法有哪些

2023-06-04 11:06:53 857人浏览 独家记忆
摘要

本篇内容介绍了“Django定时任务实现方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 前言为了做一些报表,最近需要每日从爱站

本篇内容介绍了“Django定时任务实现方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1. 前言

为了做一些报表,最近需要每日从爱站上抓取竞争对手的百度流量和移动流量,从我能实现的技术来看,大致有三种实现形式:

  1. 火车头定时抓取

  2. python+crontab定时抓取,保存在txt或cav或数据库中;

  3. django定时任务,用admin系统或模板系统展现。

第一种不熟悉,还要摸索;第二种数据展现还要自己写,如果用数据库,还要用很原始的连接方式,至少用了djanGo之后是这样;第三种优点是可以用admin系统或模板系统来,缺点是定时任务不熟悉。但考虑到打算深入学习django,于是决定用第三种方式来实现。

2. Django定时任务

Django的定时任务基本也有三种实现形式:

  1. django-celery

  2. Django的command+crontab

  3. 一些第三方库,如django-crontab

首先,看了下django-celery的官方教程,celery还是比较庞大的,而且教程比较复杂,没耐心的我就先行跳过了;

其次,又看了Django关于command的官方文档,实现了command+crontab的形式。但因为是在virtualenv下部署,一直无法实现。即便crontab中已经设置了先进入virtualenv再运行command仍然失败了(crontab中语法是source /home/../bin/activate && python /home/.../manage.py aizhan_visits)。

最后,选择了第三方库django-crontab,竟意外的实现了Django在virtualenv下的的定时任务。。

3. django-crontab实现Django在virtualenv的定时任务

3.1 django-crontab安装

  • django-crontab安装
    pip install django-crontab

  • django-crontab加入:只需要将django-crontab加入到settings.py的INSTALLED_APPS即可。如下代码:

    INSTALLED_APPS = ( 'django-crontab', ... )

3.2 django-crontab配置

django-crontab可以定时运行自定义命令和函数两种方式,因为之前尝试用command+crontab时已经实现了自定义command,所以自然而然使用了自定义命令这种形式。

3.2.1 django-crontab定时运行命令

我先参考Django官方文档自定义了一个命令aizhan_5domain_visits,专门用于抓取爱站流量,并将结果保存在sqlite3数据库中(具体步骤在本文中不赘述了)。

其次,我在settings.py中加入了django-crontab的命令:

CRONJOBS = [ ('47 11 * * *', 'django.core.management.call_command', ['aizhan_5domain_visits']), ]

意思就是每天11点47分运行aizhan_5domain_visits这个命令。接下来就剩最后一步任务加载了。

3.2.2 django-crontab定时运行函数

django-crontab也可以定时运行函数,只是在CRONJOBS配置时有差别。CRONJOBS关于函数的配置如下:

分析结果:

  • 初级模式很直观,意思就是每五分钟执行一次my_scheduled_job这个程序;

  • 中级模式有个后缀,意思是将程序my_scheduled_job的结果输出到文件/tmp/last_scheduled_job.log中;

  • 高级模式加入了参数,其中['dumpdata', 'auth']和{'indent': 4}都是参数,只是[]中的参数是按照顺序代入,而{}中的参数指定了变量名称,最后一个也是输出结果的后缀。

3.3 django-crontab任务加载

django-crontab任务加载比较简单,只需要运行Python manage.py crontab add即可。如果你运行crontab -e可以看到crontab中多了一行:

 * * * /home/aizhan/bin/python /home/aizhan/aizhan/manage.py crontab run c27d1050fb7f87225bcff587ef5a35a3 # django-cronjobs for aizhan

这是django-crontab自动生成的。

  • 如果要移除所有的任务,则运行python manage.py crontab remove;

  • 当你修改了任务,需要再次运行python manage.py crontab add。

“Django定时任务实现方法有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Django定时任务实现方法有哪些

本文链接: https://www.lsjlt.com/news/237727.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Django定时任务实现方法有哪些
    本篇内容介绍了“Django定时任务实现方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 前言为了做一些报表,最近需要每日从爱站...
    99+
    2023-06-04
  • 定时任务的实现方法有哪些
    本篇内容介绍了“定时任务的实现方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一. Linux自带...
    99+
    2024-04-02
  • Android实现定时任务的方法有哪些
    Android实现定时任务的方法有以下几种: 使用Handler:可以通过Handler的postDelayed()方法来实现定...
    99+
    2023-10-26
    Android
  • java定时任务实现方式有哪些
    Java中实现定时任务的方式有以下几种:1. 使用Java内置的Timer类,可以通过调度TimerTask来执行任务。Timer提供了简单的任务调度功能,但是不适用于需要精确控制执行时间的任务。2. 使用Java内置的Schedule...
    99+
    2023-08-11
    java
  • Django+Nginx+uWSGI定时任务的实现方法
    目录摘要使用uWSGI的cron使用socket.bind锁使用uWSGI的mule摘要 在Nginx和uWSGI还没配置时,单独在url.py使用apscheduler设置定时任务...
    99+
    2024-04-02
  • 使用Java实现定时任务的方法有哪些
    使用Java实现定时任务的方法有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 sleep这也是我们最常用的 sleep 休眠大法,不只是当作休眠用,我们还可以利用它很轻松...
    99+
    2023-06-08
  • java定时任务实现的方式有哪些
    Java中实现定时任务的方式有以下几种:1. Timer类:Java提供了Timer类,可以用来实现简单的定时任务。Timer类允许...
    99+
    2023-08-29
    java
  • Java中定时任务的实现方式有哪些
    本篇内容主要讲解“Java中定时任务的实现方式有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中定时任务的实现方式有哪些”吧!1、线程等待实现先从最原始最简单的方式来讲解。可以先创建...
    99+
    2023-06-25
  • linux实现定时任务命令有哪些
    这篇文章主要介绍linux实现定时任务命令有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、at命令at从文件或标准输入中读取命令并在将来的一个时间执行,只执行一次。at的正常执行需要有守护进程atd:#安装a...
    99+
    2023-06-09
  • Django+Celery实现定时任务的示例
    目录一、前言二、配置使用定义与触发任务扩展三、Django中使用定时任务二次开发一、前言   Celery是一个基于python开发的分布式任务队列,而做python WEB开发最为...
    99+
    2024-04-02
  • Django+Nginx+uWSGI定时任务怎么实现
    今天小编给大家分享一下Django+Nginx+uWSGI定时任务怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。摘要...
    99+
    2023-06-28
  • php计划任务定时执行的方法有哪些
    1. 使用系统的crontab工具,配置定时任务。2. 使用PHP的swoole扩展中的定时器功能。3. 使用第三方的定时任务管理工...
    99+
    2023-06-12
    php计划任务 php
  • python实现定时器的方法有哪些
    本篇内容介绍了“python实现定时器的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 使用time,threading 模块...
    99+
    2023-07-05
  • Java实现定时器的方法有哪些
    在Java中,有多种方式可以实现定时器功能。以下是几种常见的方法:1. Timer类:Java提供了Timer类,可以用来实现简单的...
    99+
    2023-08-08
    Java
  • Android实现定时器的方法有哪些
    这篇文章将为大家详细讲解有关Android实现定时器的方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。正文我用到的几种实现定时器的类:Handler, Timer, Thread, AlarmMa...
    99+
    2023-05-30
    android
  • SpringTask实现定时任务方法讲解
    目录1.注解方式2.配置文件xml方式SpringTask是Spring自带的功能。实现起来比较简单。 使用SpringTask实现定时任务有两种方式: 1.注解方式 基于注解@Sc...
    99+
    2023-02-15
    SpringTask定时任务 SpringBoot定时任务
  • django-celery-beat搭建定时任务的实现
    目录一、创建django项目和app1、安装定时任务第三方包2、创建django项目并创建一个使用定时任务的app2、新建一个celery.py文件3、创建配置文件config.py...
    99+
    2023-03-21
    django 搭建定时任务 django-celery-beat 定时任务
  • JavaSpring分别实现定时任务方法
    目录java实现定时任务Timer+TimerTask示例弊端ScheduledThreadPoolExecutor示例Spring定时任务示例原理java实现定时任务 Jdk自带的...
    99+
    2024-04-02
  • golang定时任务框架有哪些
    go 语言提供了内置的 cron 包用于定时任务管理,功能有限但易于使用。此外,还有多种第三方库可扩展其功能,例如:go-queue:支持分布式和并行执行的灵活队列和定时任务框架。cro...
    99+
    2024-04-02
  • Linux定时任务有哪些用途
    Linux定时任务的用途主要包括以下几个方面:1. 自动备份:可以设置定时任务定期备份重要数据,确保数据的安全性。2. 定时清理:可...
    99+
    2023-10-18
    linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作