gpt4 book ai didi

haskell - Haskell 中的作业调度

转载 作者:行者123 更新时间:2023-12-04 04:17:12 26 4
gpt4 key购买 nike

到目前为止,在 Haskell 中已经完成了哪些工作来以 native 方式调度作业以执行?这是我在想什么的草图。

假设我有一个函数 work我想在 Date 处执行,大概在将来(如果没有,我们可以安排它立即执行)。在这种情况下,让我们假设有某种 Job monad 发生这种情况。

type JobId = ..
schedule :: Date -> Job () -> Job JobId

然后将其传递给(最好是持久的)调度机制,该机制将在适当的时间执行调度的作业,并提供某种引用 JobId因此可以检查或重新安排工作。我在 Ruby 中使用了几个不同的作业调度库,例如 Delayed Job 和 Sidekiq。 Haskell 社区中是否有关于作业调度问题的类似工作?也许对于 Haskell,语言的性质产生了一种足够简单的模式,给定一些原始函数,库不是完全必要的吗?

最佳答案

为什么不 forkIOthreadDelay ?

这是您可以做什么的草图:

type JobId = ThreadId
type Job = IO

schedule :: Date -> Job () -> Job JobId
schedule date job =
forkIO $ do
time <- getCurrentTime
threadDelay (delay time)
job
where
delay time = error "TODO: compute the delay from `time` and `date`"

关于haskell - Haskell 中的作业调度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24024029/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com