将队列作为文件夹处理。可能的问题?

时间:2012-09-02 14:54:21

标签: c++ task-queue

我有一个可执行文件,当命令到达时需要处理数据库中的记录。现在,我通过TCP交换发出命令,但我真的不喜欢它 a)队列在会话之间不是持久的 b)TCP端口可能被锁定

我的想法是创建一个文件夹并在其中放置名称与我想要发出的命令相匹配的文件

像:

1.23045.-1.1
2.999.-1.1

然后,在处理完该命令后,该文件将被删除或移动到Errors文件夹。

这种方法是否可行或存在一些不可避免的问题?

P.S。该过程将在Linux系统上使用,因此防病毒问题是不可能的。

1 个答案:

答案 0 :(得分:1)

是的,有几个。

首先,存在与使用文件系统相关的所有问题。防病毒程序是一个(虽然我不明白为什么它不适用于Linux - 没有删除锁?)。磁盘空间,文件和目录计数最大值是其他。然后,打开文件限制和权限......

第二,竞争条件。如果有多个使用者,则在第一个使用者移动之前,可能会看到并开始处理该命令。

还存在将命令转换为文件名的问题,反之亦然,并为需要多次发出的单个命令提出不同的名称。 (虽然这些是编程问题,而不是设计问题;它们只会烦恼。)

这些都不适用于您,也不会引起您的极大关注,在这种情况下我会说:继续这样做。看看我们错过了真实生活会想到的东西。

我可能会使用MQ服务器来处理接近“严重”的事情。