问题标签 [dataflow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 明显的 BufferBlock.Post/Receive/ReceiveAsync 竞赛/错误
我知道......我并没有真正发挥 TplDataflow 的最大潜力。ATM 我只是BufferBlock
用作消息传递的安全队列,其中生产者和消费者以不同的速率运行。我看到一些奇怪的行为让我不知道如何进行。
在上面的代码中(它是 2000 行分布式解决方案的一部分),Send
每 100 毫秒左右定期调用一次。这意味着一个项目以每秒 10 次左右的速度被Post
编辑。messageQueue
这是经过验证的。但是,偶尔会出现ReceiveAsync
在超时内没有完成(即Post
没有导致ReceiveAsync
完成)并且TimeoutException
在 30 秒后被提升。此时,messageQueue.Count
已是数百。这是出乎意料的。在较慢的发布速度(1 个帖子/秒)中也观察到此问题,并且通常发生在 1000 个项目通过BufferBlock
.
所以,为了解决这个问题,我使用了以下代码,它可以工作,但在接收时偶尔会导致 1s 延迟(由于上述错误发生)
对我来说,这看起来像是 TDF 中的竞争条件,但我无法深入了解为什么在我BufferBlock
以类似方式使用的其他地方不会发生这种情况。实验性地从ReceiveAsync
to改变Receive
并没有帮助。我没有检查过,但我想孤立地看,上面的代码可以完美运行。这是我在“TPL 数据流简介” tpldataflow.docx中看到的一种模式。
我能做些什么来解决这个问题?是否有任何指标可以帮助推断正在发生的事情?如果我无法创建可靠的测试用例,我还能提供哪些信息?
帮助!
java - 如何使用 Java 创建数据流图
我是一名工科学生;我研究了数据流图。我已经使用 Antlr 制作了解析器,但我不知道如何制作数据流图。我读了一些论文,可以使用 Java 制作数据流图。请帮我。
jdbc - DD异常,清理数据库资源:有干净的解决方案吗?
这是我们都编写的一段代码:
如果省略“finally”块,那么数据库资源就会悬空,这显然是一个潜在问题。但是,如果您按照我在此处所做的操作 - 在 **try** 块外将 ResultSet 设置为 null,然后在块内将其设置为所需的值 - PMD 会报告“DD 异常”。在文档中,DD 异常描述如下:
DataflowAnomalyAnalysis:数据流分析跟踪本地定义、未定义和对数据流不同路径上变量的引用。从这些信息中可以发现各种问题。[...] DD - 异常:重新定义了最近定义的变量。这是不祥之兆,但不一定是错误。
如果您在块外声明 ResultSet 而不设置值,则在执行if (records != null)测试时,您会正确地得到“变量可能尚未初始化”错误。
现在,在我看来,我在这里的使用不是错误。但是有没有一种干净地重写不会触发 PMD 警告的方法?我不是特别想禁用 PMD 的 DataFlowAnomalyAnalysis 规则,因为识别 UR 和 DU 异常实际上很有用;但是这些 DD 异常让我怀疑我可以做得更好——而且,如果没有更好的方法来做到这一点,它们就会变得混乱(我也许应该看看我是否可以重写 PMD 规则)
groovy - 为什么 DataFlow 变量只能分配一次
这些天我正在探索 GPars(Groovy 并行系统)库,我遇到了 DataFlow 变量。文档说数据流变量只能分配一次。但是我找不到这个限制的原因。
有人能告诉我为什么 GPars 中的数据流变量只分配一次吗?
php - magento 数据流:如何在处理任何行之前调用一次操作
背景: Magento 1.7.0.0 版本。我必须使用 magento 数据流高级配置文件导入 csv 数据。我制作了一个实现 Mage_Dataflow_Model_Convert_Adapter_Abstract 的适配器。我已经实现了 saveRow() 方法来处理每一行,好的。
下一步:我想在处理任何行之前运行一些代码:类似于 save() 或 beforeSave() 方法......我该怎么做?
我想我必须从 Mage_Dataflow_Model_Convert_Adapter_Abstract 实现 save() 方法,并在我的导入配置文件的 Actions XML 部分添加一些内容:
欢迎任何建议,谢谢!:)
c# - 使用异步操作的 TPL 数据流
我正在通过移植一些旧的套接字代码以使用 TPL 数据流和新的异步功能来试验 TPL 数据流。尽管 API 感觉坚如磐石,但我的代码最终还是感觉很乱。我想知道我是否在这里遗漏了什么。
我的要求如下: 一个套接字类公开:Open、Close、Send 和 Receive 方法。所有都返回一个任务,因此是异步的。Open 和 Close 是原子的。发送和接收可以彼此相邻工作,尽管它们一次只能处理 1 个命令。
从逻辑上讲,这让我想到了下一段内部控制代码:
到目前为止一切都很好。我可以安全地将操作发送到发送和接收块,而同时不必担心正在运行的连接相关操作。ActionBlock 还确保多个发送调用是同步的(接收、关闭和打开同上)。
问题是没有简单的方法让动作将任务传达回海报。现在我正在使用 TaskCompletionSource 来传达结果。喜欢:
只是感觉丑陋和笨拙。我的问题是:有没有办法使用 TPL 同步工作流,而不必使用 TaskCompletionSource 进行通信?
谢谢!
ssis - 在数据流任务的错误输出中捕获更多信息
我创建了一个 SSIS 包
在数据流任务中,我有几列
现在我将第 0 列和第 3 列的数据类型转换为int,故意创建一个错误:
现在我将错误配置为:
之后我保留了一个数据查看器并执行了包,毫不奇怪我得到了预期的错误输出:
我可以看到我还有 3 列
但我的问题是:
- 错误列是 101 和 73。如何获得正确的列名?
- 如何将其他信息添加到同一个错误输出表中:包 ID、包名称等
performance - Magento 数据流加载 CSV 文件的时间过长
我有一个包含要更新的库存数据的大型 CSV 文件(超过 35,000 行)。我创建了一个扩展 Mage_Catalog_Model_Convert_Adapter_Productimport 的方法来进行库存更新。然后我使用高级配置文件来进行调用该方法的更新。
当我手动运行配置文件时,它运行良好。问题是当我使用处理在 cronjob 中运行的配置文件的扩展时,系统加载和解析 CSV 文件需要很长时间。我将 cronjob 设置为每天早上 6:15 运行,但文件的第一行直到当天下午 1:20 才会处理,加载文件需要 7 个小时。
这使得进程以某种方式在中间停止,只有不到 1/3 的记录被处理。我一直很沮丧试图找出原因,试图解决问题,但没有运气。
任何想法,将不胜感激。
oledb - 菜鸟的 SSIS 数据流
我在编程方面还是个新手,我们当地的 SSIS 天才今天不在这里让我挑选他的大脑。
我正在处理现有的 SSIS 包,并对特定的 .dtsx 文件进行修改。数据流有一个 OLE DB 源,我已经成功地更改了 sql 查询以适应我的项目规范。Destination 是一个连接平面文件,我已经修改了列映射以适应新查询。
我有几个担忧:
源连接原来使用的是 SQL Server 身份验证,我没有用户名和密码。我可以使用 Windows 身份验证在本地对其进行测试,但最终它会被其他人设置为某处服务器上的计划任务。(我意识到这可能是我工作中的人的问题,但我想我会填补你们的)。
目标预览不显示任何内容。但是,我可以成功解析和预览源查询...
我也不明白源编辑器上的“错误输出”是什么意思。 这是否已经正确设置,还是意味着输出中会有一些错误?
任何解释或详细说明都会有所帮助,但我的总体问题是:“我是否缺少此 .dtsx 的某些内容,或者该项目是否已完成并准备好设置为计划任务?”
sql-server - SSIS查找,为不匹配的输出创建新记录并获取新生成的密钥
我有一张酒店桌子。
现在我得到一些提要HotelNames
,现在我们的业务逻辑Hotel_ID
用于现有的 HotelName 并为新的 HotelName 创建新记录并使用新生成的 Hotel_ID。现在我明白我可以将“查找无匹配输出”定向到 OLE DB 命令转换,然后我如何获得新生成的密钥。一种选择是在 DimHotel 表上再查找一次(我想这很愚蠢,扫描一张表两次)。我们还有什么其他选择。
我可以使用但 Merge 语句,但我们的 ETL 团队希望避免手动编码。