Fil*_*oft 7 haskell infinite-loop periodic-processing periodic-task
我有一个小程序需要每5分钟执行一次.
现在,我有一个执行该任务的shell脚本,但我想提供给没有通过CLI中键附加脚本运行它的用户的能力.
实现这一目标的最佳方法是什么?
我认为你会想要这样的东西(或多或少的伪代码):
import Control.Concurrent (forkIO, threadDelay)
import Data.IORef
import Control.Monad (forever)
main = do
var <- newIORef 5000
forkIO (forever $ process var)
forever $ readInput var
process var = do
doActualProcessing
interval <- readIORef var
_ <- threadDelay interval
readInput var = do
newInterval <- readLn
writeIORef var newInterval
Run Code Online (Sandbox Code Playgroud)
如果您需要将一些更复杂的数据从输入线程传递到处理线程,则MVars或TVars可能是比IORefs 更好的选择.
| 归档时间: |
|
| 查看次数: |
638 次 |
| 最近记录: |