我可以将 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)模式”
在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式,请确保您的Main函数带有STAThreadAttribute标记。 多线程操作剪切板的时候。
选择目录,选择文件夹的COM组件问题。在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器