如何在 Elixir 或 Phoenix 框架中安排代码每隔几个小时运行一次?

2024-05-03

假设我想每 4 小时发送一堆电子邮件或重新创建站点地图或其他任何内容,我该如何在 Phoenix 或仅使用 Elixir 做到这一点?


有一个简单的替代方案,不需要任何外部依赖项:

defmodule MyApp.Periodically do
  use GenServer

  def start_link(_opts) do
    GenServer.start_link(__MODULE__, %{})
  end

  def init(state) do
    schedule_work() # Schedule work to be performed at some point
    {:ok, state}
  end

  def handle_info(:work, state) do
    # Do the work you desire here
    schedule_work() # Reschedule once more
    {:noreply, state}
  end

  defp schedule_work() do
    Process.send_after(self(), :work, 2 * 60 * 60 * 1000) # In 2 hours
  end
end

现在在您的监督树中:

children = [
  MyApp.Periodically
]

Supervisor.start_link(children, strategy: :one_for_one)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Elixir 或 Phoenix 框架中安排代码每隔几个小时运行一次? 的相关文章

  • Ecto迁移中如何动态更新字段值?

    我有一个用户表 例如 email username email protected cdn cgi l email protection email protected cdn cgi l email protection email pr
  • Phoenix框架中如何处理关联和嵌套表单?

    Phoenix框架中如何处理关联和嵌套表单 如何创建具有嵌套属性的表单 在控制器和模型中如何处理它 有一个处理 1 1 情况的简单示例 想象一下我们有一个Car and an Engine模型和显然Car有一个Engine 所以有汽车型号的
  • 如何调试eex模板和@变量?

    我有这个模板 div class alert alert danger p Oops something went wrong Please check the errors below p div 如何在 IEx 控制台中显示 chang
  • “!”、“?”、“_”和“.”是什么意思? Elixir 中的语法

    我需要帮助理解 Elixir 中的以下语法 and 这些语法在 Elixir 的功能中起什么作用 例如Repo get 我不确定它们是否只是函数名称 或者有一个角色 虽然我知道 用于调用匿名函数 和 对于任何或可变的 失败时引发异常的函数约
  • 如何在没有 javascript 的情况下从表单中修补或删除

    我正在 Phoenix 上编写一个简单的 CRUD 应用程序 如何在不使用 JavaScript 的情况下从表单提交 PATCH 和 DELETE 请求 啊我想通了 和rails一样
  • Ecto 模型 - select 中的子查询

    我需要使用 Ecto 进行 SQL 查询 SELECT users select count 0 from money transactions where from id users id AND created at gt 2016 1
  • Ecto 和 Elixir 的默认日期时间

    我今天刚刚开始使用 Elixir 和 Phoenix 我正在尝试添加 Ecto 作为映射器 但我在使用时间时遇到了一些问题 这是我的模型 schema users do field name string field email strin
  • Dialyzer 无法识别使用多态类型的函数中的错误

    背景 我正在尝试使用透析器进行多态打字 作为一个例子 我正在使用著名的Option类型 又名 Maybe Monad 现在在许多其他语言中都很流行 defmodule Test do type option t some t nothing
  • Ecto - 验证关联模型的存在

    如何验证 Ecto 中是否存在关联模型 schema foo do has many bar Bar timestamps end required fields w bar invalid 有办法这样做吗 并验证这些字段的最小 最大数量
  • Elixir 中的递归和匿名函数

    我正在尝试定义一个匿名函数来执行点积 我可以将其编码为私有函数 没有任何问题 但我正在努力解决匿名函数语法 我知道我可以以不同的方式实现这一点 但我试图了解如何使用模式匹配和递归来定义匿名函数 这是我当前的实现 dot fn i input
  • 如何在phoenix中使用session连接?

    我有一个身份验证插头 我想测试我的控制器 问题是这个插头里的线有 user id get session conn user id 当我使用这种方法时它总是为零 我以前使用过dirty hack 但我不再想这样做 session Plug
  • 为什么 x = x +1 在 Elixir 中有效?

    我读到的有关 Elixir 的所有内容都表明 赋值应该被视为模式匹配 如果是这样 为什么 x x 1 在 Elixir 中有效 不存在 x x 1 的 x 值 我读到的有关 Elixir 的所有内容都表明 赋值应该被视为模式匹配 在长生不老
  • 如何在 Elixir 或 Phoenix 框架中安排代码每隔几个小时运行一次?

    假设我想每 4 小时发送一堆电子邮件或重新创建站点地图或其他任何内容 我该如何在 Phoenix 或仅使用 Elixir 做到这一点 有一个简单的替代方案 不需要任何外部依赖项 defmodule MyApp Periodically do
  • 如何完全禁用 Elixir/Phoenix 生成器和模型中的上下文?

    凤凰城有一个发电机 mix phx gen html Accounts User users name string age integer 我不想为我的模型使用上下文 也不想提供它的名称 如何禁用它 您仍然可以使用 1 2 及更早版本中的
  • 如何在 Elixir 中截断字符串?

    我正在使用长生不老药的鼻涕虫 想法是 我有一个字符串 a zA Z0 9 用连字符分隔的单词 喜欢 string another long string to be truncated and much text here 我想确保最大字符
  • 创建新的保护子句

    在 Elixir 中 我将如何为函数创建新的保护子句 显然 我已经看到你不能只调用 a 中的任何函数when声明 但如果能够做这样的事情那就太好了 defmodule Player do def play card player do de
  • Phoenix 编程:未定义函数 page_path/2

    我的网络应用程序遇到问题 出现以下编译错误 Compilation error on file web controllers auth ex CompileError web controllers auth ex 49 undefine
  • 使用 Elixir 生成首字母头像 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在开发 Elixir 并希望提供头像服务 如果用户没有头像 可以制作一个带有他们姓名首字母缩写的头像 如下所示 我真的不知道从哪里
  • 预加载所有关系

    我有一个与此类似的 ERM ModelA ModelB ModelC 我得到模型及其模型如下 modela Repo get ModelA 1 modela preload modela modelb 现在我可以访问ModelBs with
  • Phoenix 框架 - 每个路由的页面标题

    在 Phoenix 框架中 有一种基于路由 路径设置页面标题的常用技术 或者这只是一个调用的问题assign page title fred 在我的路由函数内的正确位置 Update 我最终实现了 michalmuskala 解决方案的变体

随机推荐

  • Struts 2 - 使用 CKEditor 拦截上传的图像文件

    我有一个CKEditor在网站的不同页面上 所以我将上传内容设置为true以及让它工作的所有配置内容 并且图像上传工作得很好 Send it to the Server 标签 但从这里我想拦截或互动upload函数能够将图像上传到文件夹中
  • Linux 缓冲区溢出环境变量

    我一直在审查不同类型的缓冲区溢出 并遇到了一个我不记得为什么会发生的问题 下面的代码是我尝试执行缓冲区溢出的程序 include
  • AngularJS $http 错误时 http 状态错误

    我正在尝试使用 AngularJS 的 http 服务构建 JSONP 请求 并且在出现错误时 我收到错误的 http 状态代码 404 而不是 500 并且页面正文也丢失了 所以这是场景 我调用的 URL 返回 500 内部服务器错误 并
  • 如何将数据一次性插入sqlite数据库

    我需要将数据添加到 sqlite 数据库一次 也就是说 我希望我的应用程序的用户看到该数据已加载 如何做到这一点 我使用查询执行了它 INSERT INTO TABLE NAME VALUES 值1 值2 值3 值N 但是每次应用程序打开该
  • python中remove方法的安全使用

    我从列表继承了一个 UserList 类并实现了以下方法来删除标记为已删除的条目 def purge deleted self for element in list iter self if ele mark deleted lt 1 s
  • 您必须为 MNIST 数据集的占位符张量“Placeholder”提供一个值,dtype float 和 shape [?,784]

    这是我在 MNIST 数据集上测试量化的示例 我正在使用以下代码测试我的模型 import tensorflow as tf from tensorflow examples tutorials mnist import input dat
  • Capistrano 3 运行每个命令两次(新安装)- 配置问题

    我刚刚完成第一次 Capistrano 安装 大部分内容都保留为默认设置 我配置了我的服务器 其身份验证 远程文件夹以及对 git 存储库的访问 我使用 capistrano 将 php 代码部署到我的服务器 上限分期部署 and 上限生产
  • 从文件中读取单词并放入列表中

    本质上 我有一个巨大的文件 所有文件包含每行多个单词 每个单词用空格分隔 有点像这样 WORD WORD WORD WORD ANOTHER WORD SCRABBLE BLAH YES NO 我想要做的是将文件中的所有单词放入一个巨大的列
  • 设置区域设置和字符串模块

    这个简单的脚本 from locale import LC ALL setlocale print setlocale LC ALL from string import letters print letters 给我这个输出 tr TR
  • CSS:表达式(使用百分比或像素来计算)

    我想设置 DIV 的宽度 例如 100 10px 使用CSS表达式但一直失败有人可以告诉我答案是什么 不幸的是 你不能这样做 而且这可能会很烦人 因为你确实遇到了这样做会很棒的情况 您可以使用 Javascript 来计算元素的像素宽度 但
  • 无法初始化类 io.confluence.kafka.schemaregistry.client.rest.RestService

    我正在尝试使用 KafkaAvroSerialzer 设置一个卡夫卡生产者以获得价值 当 rit 尝试创建生产者时 我遇到了这个错误 我正在使用 confluence 5 2 1 中提供的所有罐子 java lang NoClassDefF
  • C# 按下按钮时跳出循环

    我有一个简单的 C foreach 循环 如何在按下按钮时跳出循环 它不在backgroundWorker线程中 所以我不能使用backgroundWorker Cancellation Pending 在表单中创建一个布尔标志 将事件处理
  • 在 html 中创建子页面 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 假设我有一个网站http www example com http www example com 如何为此页面创建更多子页面 即 w
  • 在lua中组合两个函数

    我刚开始学习lua 所以我的要求可能是不可能的 现在 我有一个接受函数的方法 function adjust focused window fn local win window focusedwindow local winframe w
  • 是否已经有一些基于 std::vector 的 set/map 实现?

    对于小型集合或地图 通常使用排序向量而不是基于树的向量要快得多set map 特别是对于 5 10 个元素的情况 LLVM 有一些类本着这种精神 http llvm org docs ProgrammersManual html ds se
  • 从对象中获取类型正在返回运行时类型[重复]

    这个问题在这里已经有答案了 我有一个简单的功能 public string getType object obj Type type obj getType return type FullName 如果您在运行时创建的字符串对象上使用此函
  • 在Python中随机化列表[重复]

    这个问题在这里已经有答案了 我想知道是否有一个好方法来 震动 Python 中的项目列表 例如 1 2 3 4 5 可能会被动摇 随机化 3 1 4 2 5 任何顺序都同样可能 from random import shuffle list
  • 如何从节点服务器发送 Firebase 云消息传递?

    有什么办法可以发送通知吗FCM from a node js server 我在文档中没有找到任何有关它的内容 通过 Firebase Cloud Messaging 发送消息需要调用 HTTP 端点 如发送下游消息的文档 https fi
  • Python 中 Goto 标签的替代方案?

    我知道我不能使用 Goto 我也知道 Goto 不是答案 我读过类似的问题 但我只是想不出解决我的问题的方法 所以 我正在编写一个程序 你必须在其中猜测一个数字 这是我遇到问题的部分的摘录 x random randint 0 100 I
  • 如何在 Elixir 或 Phoenix 框架中安排代码每隔几个小时运行一次?

    假设我想每 4 小时发送一堆电子邮件或重新创建站点地图或其他任何内容 我该如何在 Phoenix 或仅使用 Elixir 做到这一点 有一个简单的替代方案 不需要任何外部依赖项 defmodule MyApp Periodically do