问题标签 [shared-state]
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.
python - 基于所有正在运行的作业的聚合标准的 Python 多处理作业提交
基于 Python 多处理作业提交的所有正在运行的作业的聚合标准
我有一份工作需要在 Teradata 数据库上做一些工作,并将 db 会话数作为参数。数据库对数据库会话数的最大限制为 60。我可以使用多处理有条件地处理作业,以便所有活动子进程中的 sum(num_db_sessions) <= max_num_db_sessions?
我只是在下面粘贴一些伪代码:
python - 如何在不依赖其他软件的情况下为我的 Flask 应用程序与多个工作人员提供共享状态?
我想为与多个工作人员(即多个进程)一起运行的 Flask 应用程序提供共享状态。
引用关于此主题的类似问题的答案:
您不能使用全局变量来保存此类数据。[...] 使用 Flask 之外的数据源来保存全局数据。数据库、memcached 或 redis 都是合适的单独存储区域,具体取决于您的需要。
(来源:Flask 中的全局变量线程安全吗?如何在请求之间共享数据?)
我的问题是关于如何在 Flask“外部”提供数据的建议的最后一部分。目前,我的网络应用程序非常小,我想避免对其他程序的要求或依赖。如果我不想在后台运行 Redis 或其他任何东西,而是为所有内容提供 Web 应用程序的 Python 代码,我有什么选择?
javascript - 如何更改 Alpine.js 中的共享状态?
我试图通过在调整窗口大小时更改共享状态来隐藏 DOM 内的多个元素。
当我尝试
它应该将状态 ** hideOnMobile** 更改为 true 但不知何故?
python - 在 ruamel.yaml 中使用自定义构造函数时如何避免全局状态?
我正在使用 ruamel.yaml 解析复杂的 YAML 文档,其中某些标记节点需要特殊处理。add_multi_constructor
按照已发布示例的建议,我使用 注入我的自定义解析逻辑。问题是我需要根据外部状态动态更改注入的逻辑,但是修饰方法(例如add_multi_constructor
修改全局状态)会在逻辑上不相关的实例之间引入不可接受的耦合。这是MWE:
输出:
预期的:
我做了以下解决方法,在其中动态创建新的类实例以打破耦合:
我的问题是:
我在滥用图书馆吗?全局效果是一个巨大的危险信号,表明我错误地使用了 API,但是该库缺少任何 API 文档,所以我不确定什么是正确的方法。
从 API 损坏的角度来看,它是否安全?由于没有记录在案的 API,我不确定这是否可以安全投入生产。
docker - 将块存储挂载到多个运行 Docker Swarm 的 VPS 以进行共享存储是否可行?
查看为 Docker Swarm 实现共享存储的多个选项,我可以看到其中大多数都需要一个特殊的 Docker 插件:
- sshFs
- CephFS
- glusterFS
- S3
- 和别的
...但是在任何地方都没有提到的一件事就是将典型的块存储安装到所有运行 Docker Swarm 的 VPS 节点上。这个选项是不切实际的,因此在互联网上没有提到吗?我错过了什么吗?
我的想法如下:
- 创建一个典型的块存储(例如 DigitalOcean 或 Vultr 提供的一个)。
- 将其挂载到您的 VPS 文件系统。
- 使用“本地”驱动程序将该块存储中的文件夹挂载为 Docker 容器/Docker Worker 中的卷。
对我来说听起来最简单,最明显。为什么人们使用更复杂的设置,如 sshFs、CephFS 等?最重要的是,我描述的实现是否可行,如果可行,这样做的缺点是什么?
concurrency - BPM 引擎和共享状态
BPM 引擎是否允许在工作流实例之间共享状态?
我们有一个用例(POC),其中一个服务可能会收到多个相同的 REST 请求。每个请求都包含一个 ID - 如果它们的 ID 相同,我们认为两个请求相同。要求是使用 BPM 作为工作流引擎来实现这一点,并从 BPM 引擎级别处理任何并发性,而不是包含它的服务。行为可以概括为:
- 如果已存在具有匹配 ID 的工作流实例,则服务应返回此工作流的进度值。
- 如果具有匹配 ID 的工作流实例在过去定义的时间内结束,则服务返回此工作流的最新进度值(可能是“成功”、“失败”等)
- 如果没有在定义的时间范围内结束的具有匹配 ID 的工作流实例,则应启动一个新实例,并且服务返回进度值,即“正在运行”。
- 我们希望确保每个 ID 仅实例化一个工作流实例,无论有多少具有此 ID 的请求到达服务。
我想如果有一个我们可以使用的 BPM 引擎,它提供某种形式的工作流实例之间共享的同步状态,这将相对容易。是否有真正提供此类功能的 BPM 引擎?
reactjs - Next.js 中 _app.tsx 中的 getServerSideProps
所以,情况就是这样。
我正在尝试在应用程序初始化中获取“语言”cookie,以相应地更改 UI。例如,如果语言是“阿拉伯语”(ar),我将布局恢复为“RTL”,反之亦然。
有两种方法可以实现,第一种方法是获取“useEffect()”里面的cookie,像这样......
这可行,但您可以想象的问题是页面在默认的“英语”布局下闪烁片刻,直到useEffect()
执行。
避免这种闪烁行为的另一种方法当然是getInitialProps
在 _app.tsx 级别上使用,就像这样......
现在,您可以在根 _app 级别使用“appLanguage”道具来做任何您想做的事情。
这种方法的唯一问题是“Next.js”团队不建议在 _app 级别使用“getInitialProps”,因为根据文档......
“这会禁用执行自动静态优化的能力,导致应用程序中的每个页面都在服务器端呈现。”
另一方面,您似乎无法在根 _app 级别使用“getServerSideProps”。
所以,我的问题是,如何两全其美?获取一个状态以从根“_app”级别共享它而不使用 getInitialProps 来不渲染每个页面服务器端?
甚至可能吗?或者有没有办法在根“_app”文件中使用“getServerSideProps”?
任何帮助表示赞赏。