当前位置: 首页 > 知识库问答 >
问题:

使用camel-smb SMB在仍被写入的情况下拾取(大)文件

戴品
2023-03-14

当尝试创建文件的循环移动时,使用readlock遇到了奇怪的行为。创建一个大文件(大约100MB)并使用SMB将其从out文件夹传输到in文件夹。

发件人:

smb2://smbuser:****@localhost:4455/user/out?antInclude=FILENAME*&consumer.bridgeErrorHandler=true&delay=10000&inProgressRepository=%23inProgressRepository&readLock=changed&readLockMinLength=1&readLockCheckInterval=1000&readLockTimeout=5000&streamDownload=true&username=smbuser&delete=true

致:

smb2://smbuser:****@localhost:4455/user/in?username=smbuser
smb2://smbuser:****@localhost:4455/user/in?antInclude=FILENAME*&delete=true&readLock=changed&readLockMinLength=1&readLockCheckInterval=1000&readLockTimeout=5000&streamDownload=false&delay=10000
smb2://smbuser:****@localhost:4455/user/out

共有1个答案

黎曾笑
2023-03-14

html" target="_blank">解决方案要求防止轮询策略自动拾取一个文件,并在另一边变得知道readLock(正在进行中)。因此,我将延迟降低到5秒,并且从部分开始,在两侧,我将readLockMinAge添加到5s,它将检查文件修改时间。由于每秒都在进行流式传输,这就有足够的时间来防止读取锁定。

关于为什么会发生前面提到的情况的解释:

  1. 当路由准备从out文件夹拾取时,一个大文件(1GB)正在一个块一个块地进入文件夹。camel-smbj和文件接收状态status_delete_pending将流文件的末尾标记为要删除。
  2. 现在这个过程的另一部分开始将一个新到达的文件发送到out文件夹,并发现这个文件已经存在。由于默认的fileexists=override策略,它尝试删除(随后存储)一个现有文件(该文件仍未从上一步中删除),并接收到一个导致某些输入流块丢失的异常。
 类似资料:
  • 问题内容: 我正在尝试使用Python的ftplib读取文件而不编写它们。大致相当于: 但使用FTP。 我试过了: 但这不起作用。文档中的唯一示例涉及使用该格式编写文件。是否可以在不先写入的情况下读取ftp文件? 问题答案: 好吧,您的答案就在眼前:retrbinary方法接受对函数的引用作为第二个参数,该函数在从ftp连接中检索文件内容时被调用。 这是一个简单的示例: 您应该实现writeFun

  • 有没有办法从数组中选择一个随机字符串,而不再选择该字符串。所有字符串只拾取一次后,程序结束。 这是我当前的系统,publicstaticvoidmain(String[]argv){ 我的问题是,控制台将返回“此人已被选中”等等。并不是说节目结束系统不起作用,因为Rest会过早地起作用。 [1]: https://i.stack.imgur.com/54Eef.png [如您所见,程序结束,尽管没

  • 问题内容: 如何在文件中添加文本而不覆盖旧文本。我使用模块fs(节点js) 我试过了这段代码,但是没有用。 任何建议,谢谢。 问题答案: 在此处检查标记:http : //nodejs.org/api/fs.html#fs_fs_open_path_flags_mode_callback-您当前正在使用哪个标记: ‘w +’-打开文件进行读写。文件已创建(如果不存在)或被截断(如果存在)。 您应该

  • 问题内容: 我设法使我的第一个python脚本起作用,该脚本从URL下载.ZIP文件的列表,然后继续提取ZIP文件并将其写入磁盘。 我现在无所适从,无法实现下一步。 我的主要目标是下载并提取zip文件,并通过TCP流传递内容(CSV数据)。如果可以的话,我宁愿不实际将任何zip或解压缩的文件写入磁盘。 这是我当前的脚本,可以运行,但是不幸的是必须将文件写入磁盘。 问题答案: 我的建议是使用一个对象

  • 为什么谷歌在REST中使用了大量的SOAP,尽管它有以下优点。 REST是一种架构风格。 REST代表表示状态转移。 REST可以使用SOAP web服务,因为它是一个概念,可以使用任何协议,如HTTP、SOAP。 REST使用URI公开业务逻辑。REST使用(通常)URI和(GET,PUT,POST,DELETE)这样的方法来公开资源。JAX-RS是用于RESTful web服务的java AP

  • 首先,如果这是一个很长的代码段,我很抱歉,但是,我想做一个模态窗口,它将你在我的用户表单中写的东西写下来,并要求你确认它。我目前正在学习Javascript,我不允许使用innerHTML,我必须动态地编写“名字”等(名字的文本),不允许只在弹出窗口内写它。我已经让大多数东西工作,但“名字”“名字”等显示为“未定义”,或者(正如你可以看到的,我在这种情况下只用名字尝试的事情)显示为“空”。 希望有