问题标签 [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.

0 投票
10 回答
1077 浏览

operators - 此语言功能是否已经存在?

我目前正在开发一种用于在连续环境中进行编程的新语言(将其与电气工程进行比较),并且我对某种语言构造有了一些想法。

让我通过解释然后通过定义来解释该功能:

wherex是变量,aandb是其他变量(或静态值)。这就像 and 之间的联合a一样b;没有重复,也没有特定的顺序。

在上面,所有代码块都被执行,但是每个块中的“范围”会发生变化,如何x解释。在第一个块中,x保证为a: 因此与x该块内部的交互将在 上交互a。只有在这种情况下,第二个和第三个代码块才相等(因为not a: 那么只剩下b)。最后一个块保证x至少是aor b

此外; U不是“按位或运算符”,但我称它为“和/或”运算符。它的定义是:

(在我的博客http://cplang.wordpress.com/2009/12/19/binop-and-or/上,有更多关于此运算符的(数学)背景信息。它松散地基于集合。使用不同的语法,在这个问题中改变了它。)

更新:更多示例。

Update2:更多示例和更多上下文。

一些背景信息:我正在构建一种“与时间无关”的语言,例如 Java 是“与平台无关的”。语言中陈述的一切都是“原样”,并且不断地积极执行。这表示; 程序员不知道元素的顺序(除非使用构造明确说明),也不知道语句何时执行。该语言与“时间”概念完全分离,即它是连续执行的:

更新 3:

琢磨了一下这个语言特征的类型;它与 Netbeans Platform 的 Lookup 非常相似,其中每个“with”语句都是一个同步代理,处理它的特定对象“过滤器”。这不是基于类型,而是基于变量(基本上完全相同;只是识别对象的不同方式)。

我非常感谢你们为我提供了非常有见地的信息以及我可以研究的重要主题的链接/提示。谢谢。

我不知道这种结构是否已经存在,所以这是我的问题:这种语言特性是否已经存在?

0 投票
1 回答
560 浏览

compiler-construction - 如何使用 SSA 形式处理数据流分析中的别名寄存器?(例如 x86 中的 EAX/AX/AH/AL)

例如:

如何以SSA 形式表示以下 x86 :

通过引入一些伪函数,我想出了:

但我认为它太冗长了

0 投票
2 回答
883 浏览

java - 使用 Java 并发 API 对动态数据流进行建模的技术

编辑:这基本上是一个“如何在 Java 中正确实现数据流引擎”的问题,我觉得这不能用一个答案来充分回答(就像问“如何正确实现 ORM 层”并让某人写出Hibernate的细节或其他东西),所以认为这个问题“关闭”。

有没有一种优雅的方式来为 Java 中的动态数据流建模?通过数据流,我的意思是有各种类型的任务,这些任务可以任意“连接”,这样当一个任务完成时,后继任务将使用完成的任务输出作为输入并行执行,或者当多个任务完成时,它们的输出在后续任务中聚合(请参阅基于流的编程)。通过动态,我的意思是任务完成时后继任务的类型和数量取决于该已完成任务的输出,因此例如,如果任务 A 具有特定输出,则可能会生成任务 B,但如果具有特定输出,则可能会生成任务 C不同的输出。另一种说法是,每个任务(或一组任务)负责确定下一个任务是什么。

用于渲染网页的示例数据流:我有任务类型:文件下载器、HTML/CSS 渲染器、HTML 解析器/DOM 构建器、图像渲染器、JavaScript 解析器、JavaScript 解释器。

  • HTML 文件的文件下载器任务
    • HTML 解析器/DOM 构建器任务
      • 每个嵌入文件/链接的文件下载器任务
        • 如果是图像,图像渲染器
        • 如果是外部 JavaScript,JavaScript 解析器
          • JavaScript 解释器
        • 否则,只需存储在 HTML 解析器任务中的某个 var/field 中
      • 每个嵌入式脚本的 JavaScript 解析器
        • JavaScript 解释器
      • 等待上述任务完成,然后是 HTML/CSS 渲染器(显然不是最佳或完全正确,但这很简单)

我并不是说解决方案需要一些全面的框架(事实上,越接近 JDK API 越好),我绝对不想要像 Spring Web Flow 或一些声明性标记或其他 DSL 这样重量级的东西.

更具体地说,我试图想出一种在 Java 中使用 Callables、Executors、ExecutorCompletionServices 以及可能还有各种同步器类(如 Semaphore 或 CountDownLatch)来对此进行建模的好方法。有几个用例和要求:

  1. 不要对任务将在哪个执行者上运行做出任何假设。事实上,为了简化,假设只有一个执行者。它可以是一个固定的线程池执行器,所以一个简单的实现可能会导致死锁(例如,想象一个任务提交另一个任务然后阻塞直到该子任务完成,现在想象这些任务中的几个用完所有线程)。
  2. 为简化起见,假设数据不是在任务之间流式传输(任务输出->后续任务输入)——完成任务和后续任务不必同时存在,因此后续任务的输入数据不会被前面的任务(因为它已经完成了)。
  3. 数据流“引擎”应该能够处理的只有几个操作:
    1. 一个任务可以排队更多任务的机制
    2. 在完成所有必需的输入任务之前,后继任务不会排队的机制
    3. 主线程(或其他不受执行程序管理的线程)阻塞直到流程完成的机制
    4. 一种机制,主线程(或其他不受执行程序管理的线程)阻塞直到某些任务完成
  4. 由于数据流是动态的(取决于任务的输入/状态),这些机制的激活应该发生在任务代码中,例如,Callable 中的代码本身负责将更多的 Callables 排队。
  5. 数据流“内部”不应该暴露给任务(Callables)本身——只有上面列出的操作应该对任务可用。
  6. 请注意,所有任务的数据类型不一定相同,例如文件下载任务可能接受文件作为输入,但会输出字符串。
  7. 如果一个任务抛出一个未捕获的异常(表明一些致命错误,需要停止所有数据流处理),它必须尽快传播到启动数据流的线程并取消所有任务(或者像致命错误处理程序这样更奇特的东西)。
  8. 任务应尽快启动。这与之前的要求一起应该排除简单的 Future 轮询 + Thread.sleep()。
  9. 作为奖励,我希望数据流引擎本身在每次任务完成时或自上次任务完成后 X 时间内没有完成时执行一些操作(如日志记录)。就像是:ExecutorCompletionService<T> ecs; while (hasTasks()) { Future<T> future = ecs.poll(1 minute); some_action_like_logging(); if (future != null) { future.get() ... } ... }

是否有直接的方法可以使用 Java 并发 API 完成所有这些操作?或者,如果无论 JDK 中有什么可用的东西都会变得复杂,那么是否有一个轻量级的库可以满足要求?我已经有一个适合我的特定用例的部分解决方案(它在某种程度上作弊,因为我使用了两个执行程序,而且你知道,它与我上面给出的网络浏览器示例完全无关),但我'希望看到一个更通用和优雅的解决方案。

0 投票
6 回答
22089 浏览

ssis - 如何让 SSIS 数据流将“0.00”放入平面文件中?

我有一个带有数据流的 SSIS 包,它采用 ADO.NET 数据源(只是一个小表),执行一个 select * 查询,并将查询结果输出到一个平面文件(我也试过只拉整个表并且不使用 SQL 选择)。

问题是数据源提取了一个 Money 数据类型的列,如果值不为零,它会很好地进入文本平面文件(如 '123.45'),但是当值为零时,它会显示在目标平面文件中作为“.00”。我需要知道如何让前导零回到平面文件中。

我已经为输出尝试了各种数据类型(在平面文件连接管理器中),包括货币和字符串,但这似乎没有效果。

我在我的选择中尝试了一个 case 语句,如下所示:

(仍然导致“.00”)

我已经尝试过这样的变化:

(仍然导致“.00”)

和:

(结果为'.0000000000000000000')

这个愚蠢的小问题要了我的命。谁能告诉我如何将零 Money 数据类型数据库值作为“0.00”放入平面文件中?

0 投票
4 回答
1956 浏览

concurrency - 什么是数据流并发的良好激励示例?

我了解数据流编程的基础知识,并且在Clojure APIsJonas Boner 的演讲、 Groovy 中的GPars等中遇到过它。我知道它在 Io 等语言中很普遍(尽管我没有研究过 Io)。

我缺少的是在构建并发程序时关注数据流作为范例的令人信服的理由。为什么我要使用数据流模型而不是可变状态+线程+锁模型(在 Java、C++ 等中很常见)或演员模型(在 Erlang 或 Scala 中很常见)或其他什么?

特别是,虽然我知道上述语言(以及 Scala 和 Ruby)的库支持,但我不知道有哪个程序或库是该模型的典型子用户。谁在使用它?为什么他们发现它比我提到的其他模型更好?

0 投票
1 回答
997 浏览

ssis - SSIS中条件拆分的处理结果

我有一个数据流任务,并且正在通过 OLE DB 源组件连接到数据库以提取数据。此数据馈送到条件拆分组件中,以根据简单的表达式分离数据。

在评估此表达式后,数据将最终位于以下两个位置之一:LocationA 或 LocationB。

好的,我已经完成了所有设置并正常工作。一旦数据被分离到这两个位置,就要对记录进行额外的处理。

这就是我卡住的地方:我需要在处理 LocationB 中的记录之前处理 LocationA 中的记录。

有没有办法设置哪些任务在其他任务之前发生的优先级?如果没有,处理这个问题的最佳方法是什么?我在想我可能需要将 LocationA 和 LocationB 中的数据写回数据库,并在控制流中创建一个新的数据流任务来处理必须处理这些记录的顺序。

任何帮助是极大的赞赏!

0 投票
3 回答
2018 浏览

c - C 中的数据流库

如何在 C 中进行数据流(管道和过滤器、流处理、基于流)?而不是 UNIX 管道。

我最近遇到了stream.py

流是具有流水线机制的可迭代对象,可实现数据流编程和轻松并行化。

这个想法是获取一个函数的输出,该函数将一个可迭代对象转换为另一个可迭代对象,并将其插入另一个此类函数的输入。虽然您已经可以使用函数组合来做到这一点,但这个包通过重载 >> 运算符为它提供了一个优雅的符号。

我想在 C 中复制这种功能的简单版本。我特别喜欢>>运算符的重载以避免函数组合混乱。维基百科在 1990 年的一篇 Usenet 帖子中指出了这一提示

为什么选择 C?因为我希望能够在微控制器和其他高级语言(Max、Pd*、Python)的 C 扩展中做到这一点。

*(具有讽刺意味的是,Max 和 Pd 是用 C 语言编写的,专门为此目的——我正在寻找一些准系统)

0 投票
4 回答
911 浏览

import - Magento中的缓慢类别导入

我编写了一个自定义适配器,用于使用高级配置文件导入 6K 类别。导入太慢了。我尝试将记录数从 1 增加到 5,但没有帮助。在保存类别之前,我还尝试使用 ->setDisplayMode($dispMode) 和 ->setIsMassupdate(true) ,但这也无济于事。

知道如何加快速度吗?

0 投票
1 回答
8470 浏览

magento - 从管理产品网格将产品导出到 csv

导入产品配置文件允许您按名称、sku 筛选要导出的产品... 我希望在管理产品页面中具有相同的功能。管理员将过滤网格中的产品,然后单击“导出”按钮以获取过滤后的产品。

如何添加“导出”按钮?我需要覆盖什么模板/块?当管理员单击按钮时,我如何获得过滤后的集合?如何将过滤后的集合导出到 csv 文件?我可以为此使用数据流吗?

谢谢

0 投票
3 回答
946 浏览

video - Magento - 模块 VS 数据流

Magento - 模块 VS 数据流

我正在考虑 ---- 使用 Magento DataFlow 从数据库中提取信息以配合视频 CMS 的可能性。

它可以节省开发时间 - 也可能不会。

它可能会更稳定——也可能不会。

问题变成了将视频系统作为不破解核心的模块紧密集成到磁电机中更好——还是直接查询数据库——释放在磁电机核心之外工作但仍与之交互的能力?

我必须从开发的角度和功能/日常使用/维护的角度来决定它是否更好

--

更新一:

“从您的帖子中不清楚这些数据将在哪里结束,或者您是否正在写入数据库等”

如果在 Magento 中作为模块完成,视频和播放列表将在管理员中配置。

它将是一种“媒体配置器”,可以接收多协议源(例如http://erlyvideo.org/files、aws cloudfront、wowza、任何服务器、brightcove、youtube 等)并吐出/配置代码块(例如 flash、html5 视频、js、php)。这将通过粘贴代码/网址和/或上传内容来完成。

--

如果没有在 Magento 中完成,相同类型的事情将在另一个 CMS 中发生(自定义或类似 drupal 或 wordpress)

--

我不确定必须发生的每一种可能的交互,但是 - 在媒体库中 - 有一个收藏夹系统、保存的会话、用户组权限、订阅内容 (vod)。

单个视频实例也将在商店页面和博客上提供:但交互仅限于提供视频。


更新二:

“Magento 在这种情况下的用途是什么?”

据我目前所知,保存的会话(任何用户)、收藏夹系统(登录用户)、保存的首选项(登录用户)、用户组权限(任何用户或登录用户 + 具有各种用户类型)。

但除了 VOD 实例之外,媒体库的目的是:

A. 提供免费视频剪辑。

B. 让用户看到客户 DVD 产品的预告片。

两者似乎都不需要太多的互动。但是为了保持连续性,最好将所有东西都保存在一个由一个管理员配置的数据库中——不管它是出于必要还是为了方便而更紧密地集成。

但正如最初所说,也许在 db/store 之外可以实现更健壮/多功能或更稳定的独立性。也许后者是由那些真正不了解 Magento 或对其理解有一定限制的人推动的,因此建议分离。我不知道。

--

“除非视频与产品相关,否则没有理由将它们标记为产品。”

这对于刚才提到的预告片和免费视频是有意义的。我想一个可能的例外是 VOD 视频或 VOD 视频组。在这种情况下,我假设您是说视频最好是经过特殊配置的产品,除此之外,它恰好也出现在媒体库中?

在这种情况下,VOD、视频剪辑本身(或其容器)将是一个产品。除了拥有自己的产品页面(如果需要)之外,它还可以根据需要在任何地方进行预览、购买和放置。从代码的角度来看,这是如何“制造”的,这是个问题。

另一种可能不同的方法是这样的:(页面不见了)http://workbookproject.com/newbreed/2010/06/21/build-your-own-vod-portal/ 试试这个:http://filmutopia。 typepad.com/lone_gun_manifesto/2010/07/how-to-build-your-own-vod-portal-in-a-matter-of-hours-for-less-than-100-lgm.html。用户实际购买页面访问权限的位置。

Zac 在他的网站和文章中做得很好,我可以看到 Magento 正在做这种事情,但是正如 Zak 在他的文章末尾指出的那样,他正在使用 Flash,所以我的解决方案会更进一步以 HTML5 视频和/或 [任何协议] 提供。

所以我不知道万磁王是否会像 Zak 那样使用 WP 或其他东西来处理这种事情 VS 是否过于麻烦。

--

“可以在 Magento 中创建常规数据模型来包装数据库调用,如果视频和产品之间没有交互,那么创建其中一个模型应该更干净。”

好的,我阅读了“Magento 中的数据模型”,但在本规范的架构中,我看不到它们与/物理组成的内容有关。

显然,在 Magento 中做事的方法很多。

数据流、数据模型、Magento 模块......哎呀......为什么不折腾小部件?:)

--

对此还有什么看法吗?非常感激。