当前位置: 首页 > 知识库问答 >
问题:

如何用Heroku和Django实现简单的cron作业

娄鹤轩
2023-03-14

我有一个运行在Heroku上的Django应用程序,使用Heroku Postgres数据库。这是相当低的流量,我想保持每月的成本尽可能低(现在,它是免费运行的,Heroku每月750个免费小时)。我有一些简单的cron作业,实现为对Django管理命令的调用,我想运行,但是我不确定如何使用Heroku来完成。我读过一些关于Scheduler的文章,但我仍然对一些事情感到困惑。首先,如果Scheduler运行在一个独立的dyno上,它如何调用Django的manage.py文件?第二,调度器任务通常占用多少时间?例如,如果任务只需要运行30秒,我是否只对30秒的使用进行计费,还是与启动(然后关闭)dyno相关的更多成本?

共有2个答案

扈阳辉
2023-03-14

首先,如果调度器在一个独立的dyno上运行,它如何调用Django的manage。py文件?

当你上传(推送)你的项目时,它被编译成一个段塞。这个段塞被分发到运行你的web应用的每个dyno,以及每隔1个dyno。这意味着您运行的每个dyno都会有一个manage.py的副本,可以通过调度器,也可以通过heroku run命令。

第二,调度器任务通常占用多少时间?

Scheduler插件运行一次性dynos,它将计入您的dyno小时数,您每个月将被收取费用。

例如,如果任务只需要30秒就可以运行,那么我是只为30秒的使用量付费,还是与旋转dyno相关的成本更高?

执行一次性dyno所花费的任何时间都将增加使用量,并将像任何其他dyno一样收取费用。

这意味着使用30秒完成一项任务需要30秒的动态时间(参考)。我不认为你需要为加速/减速时间付费,但你需要为python加载你的应用程序到它可以运行你的管理命令的时间付费,所以试着让你的应用程序在加速时间方面尽可能轻。

唐哲
2023-03-14

实际上,你可以试试APScheduler。

它甚至允许1分钟的任务周期,完全免费。

你只需要定义时钟进程并打开时钟。

你可以在页面上看到分步教程。

 类似资料:
  • 本文向大家介绍django 实现简单的插入视频,包括了django 实现简单的插入视频的使用技巧和注意事项,需要的朋友参考一下 直接将 视频的HTML网址存入models ,以字符串的形式 然后传入到前端 然后直接把字符过滤成html代码 视频就出来了 补充知识:django上传媒体文件至media的配置部署 在Django应用的文件夹下,经常会发现这两个文件夹:static, media; st

  • 本文向大家介绍如何简单的实现一个promise?相关面试题,主要包含被问及如何简单的实现一个promise?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 首先明确什么是promiseA+规范,参考规范的地址:primise A+规范 如何实现一个promise,参考我的文章: 实现一个完美符合Promise/A+规范的Promise 一般不会问的很详细,只要能写出上述文章中的v1.0版本

  • 问题内容: 我正在创建一个允许用户提交报价的网站。如何创建返回最相关引号的(相对简单?)搜索? 例如,如果搜索词是“土耳其”,那么我将返回引号,其中单词“土耳其”出现两次,而引号则只出现一次。 (我会添加一些其他规则来帮助过滤掉不相关的结果,但是我主要担心的是。) 问题答案: 每个人都建议使用MySQL全文搜索,但是您应该注意一个巨大的警告。全文搜索引擎仅适用于MyISAM引擎(不适用于InnoD

  • 本文向大家介绍Django 使用 cookie 实现简单的用户管理功能,包括了Django 使用 cookie 实现简单的用户管理功能的使用技巧和注意事项,需要的朋友参考一下 Cookie: 1.保存在用户浏览器 2.可以主动清除 3.可以被伪造 4.跨域名 Cookie 不共享 创建一个项目:user_manager 和应用: app01 创建数据库,添加 models.py 在 templat

  • 本文向大家介绍nodejs简单实现操作arduino,包括了nodejs简单实现操作arduino的使用技巧和注意事项,需要的朋友参考一下 用Javascript来操作硬件早就不是一件稀奇的事情了。 所以作为一名电子专业出身的FE,我也打算尝试一下用js来驱动arduino; 要想操作这些底层硬件,肯定是需要一些工具的,我这里介绍的工具主要是 cylonjs 和 gort cylonjs其实就是一

  • 本文向大家介绍JScript实现表格的简单操作,包括了JScript实现表格的简单操作的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了JScript实现表格的简单操作,供大家参考,具体内容如下 实现思路: 1、添加时:获取当前列表的行数,在当前一行添加下一行; 2、用insertCell()方法添加一行,下标从0开始, 3、若要给新一行添加类型、响应事件,就用setAttribute