gpt4 book ai didi

Ruby - 捕获 SIGINT 以允许完成文件写入

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:06 25 4
gpt4 key购买 nike

我知道如何捕获 SIGINT,但我只知道如何将 block 随机放置在我的代码中。我需要能够捕获 SIGINT,因为如果文件写入正在进行(我的数据库频繁写入文件),它会损坏文件。处理这个问题的理想方法是什么?

编辑

在一个例子中,如果我检测到 SIGINT,我会通过执行我的写入函数来处理这个问题,但我意识到如果我真的正在使用 Marshal 写入文件,这将无济于事。

在 Ruby 中没有办法捕捉 SIGINT 并告诉它忽略它直到它完成写入吗?

编辑2

没关系,只是想出了一个可能的答案......见下文。

最佳答案

我最终使用了一个救援 block ,它拯救了中断。在 block 中,我将 bool 值变为真值。在我的每个线程池任务开始时检查 bool 值,如果为真,则跳过整个函数。

编辑

关于我在原始帖子中的编辑:处理文件写入中断的最佳方法是再次使用 bool 值吗?例如,创建一个名为 interrupt 的 bool 值,并在写入文件结束时检查 bool 值是否为真,如果是,则中止程序?那时我不能使用 rescue 来捕捉中断,但我可以使用 trap,不是吗?

关于Ruby - 捕获 SIGINT 以允许完成文件写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40519757/

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