我可以将 Dataflow 作业配置为单线程吗?

Posted

技术标签:

【中文标题】我可以将 Dataflow 作业配置为单线程吗?【英文标题】:Can I configure a Dataflow job to be single threaded? 【发布时间】:2020-07-05 03:37:26 【问题描述】:

我试图配置和部署真正单线程的 Cloud Dataflow 作业,以避免在数据存储区中创建/更新实体时出现并发问题。我假设使用 n1-standard-1 机器可以确保作业在单线程上运行,在单台机器上运行,但我发现事实并非如此。

我在这里查看了之前查询中提到的建议-Can I force a step in my dataflow pipeline to be single-threaded (and on a single machine)?

但我想避免围绕此实施窗口化方法,并想知道是否有更简单的方法来简单地配置作业以确保单线程行为。

任何建议或见解将不胜感激

【问题讨论】:

您是否处于流媒体模式(PubSub 源)?还是批处理模式? 如果您使用的是无限源,则无论如何都需要一个窗口。请让我知道有关您的管道的更多详细信息 我使用 Kafka 作为我的流媒体源。 【参考方案1】:

我最近了解到单线程行为是通过使用 n1-standard-1 的单个工作程序以及另外使用以下 exec_arg --numberOfWorkerHarnessThreads=1 来保证的,因为这也将 JVM 线程数限制为 1 .

【讨论】:

是添加 exec_arg --numberOfWorkerHarnessThreads=1 解决了它 我也有同样的问题。现在我明白需要做什么了。谢谢。

以上是关于我可以将 Dataflow 作业配置为单线程吗?的主要内容,如果未能解决你的问题,请参考以下文章

ThreadThreading.TimerTask中ShowDialog()方法报错:“在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式”

ThreadThreading.TimerTask中ShowDialog()方法报错:“在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式”

Nginx内部有使用多线程吗

在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式,请确保您的Main函数带有STAThreadAttribute标记。 多线程操作剪切板的时候。

选择目录,选择文件夹的COM组件问题。在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器

菜鸟解决 必须将当前线程设置为单线程单元(STA)模式的报错