标签: distributed

为什么 Celery 不将时间戳嵌入到排队消息中?

我试图获取 Celery 排队任务的等待时间。据我所知,我可以通过 Celery 工作人员发布的事件流来做到这一点。好奇的是,为什么队列任务中没有嵌入简单的时间戳?这与分布式系统设计有关吗?

注意:芹菜==3.0.12

python distributed celery

2
推荐指数
1
解决办法
1653
查看次数

Sidekiq - 防止工人在特定机器上执行

我正在开发一个使用 Sidekiq 的 Rails 项目。我们的 Sidekiq 实现有两个 worker(WorkerA,读取 queue_a 和 WorkerB,读取 queue_b)。其中一个必须在 Rails 应用程序所在的同一服务器中执行,另一个必须在不同的服务器中执行。如何防止 WorkerB 在第一台服务器中执行,反之亦然?Sidekiq 进程可以配置为仅运行特定的工作人员吗?

编辑:Redis 服务器与 Rails 应用程序在同一台机器上。

distributed ruby-on-rails sidekiq

2
推荐指数
1
解决办法
817
查看次数

Dask ProgressBar 不适用于分布式后端

进度条与multiprocessing后端一起使用时效果很好,但在使用distributed调度程序作为后端时似乎根本不起作用。

有没有解决的办法?还是另一种解决方案?该distributed软件包本身有一些进度条,但它们都需要一个期货列表才能工作。

python distributed progress-bar dask

2
推荐指数
1
解决办法
1492
查看次数

Julia:具有远程工作者的 SharedArray 变成了一个 0 元素数组

我正在尝试在服务器上使用远程工作人员运行一些代码,我想将这些代码与 Julia 1.5.3 上的本地工作人员结合使用。以下代码在有 24 个工作人员的情况下在本地运行时可以正常工作:

using Distributed
using SharedArrays
a = SharedArray{Float64}(100)
@sync @distributed for i = 1:100
    a[i] = i+1
end
sum(a)
Run Code Online (Sandbox Code Playgroud)

如果我添加工人

N_remote = 24
for i=1:N_remote
    addprocs(["user@192.168.0.129"], tunnel=true, dir="/home/user/scripts/", exename="/home/user/julia-1.5.3/bin/julia")
end
Run Code Online (Sandbox Code Playgroud)

然后在运行第一个代码时出现以下错误:

 julia> include("test_sharedarray.jl")
ERROR: LoadError: TaskFailedException:
On worker 4:
BoundsError: attempt to access 0-element Array{Float64,1} at index [1]
setindex! at ./array.jl:847 [inlined]
setindex! at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/SharedArrays/src/SharedArrays.jl:510
macro expansion at /home/usuaris/spcom/gfebrer/bayesian_mc_watson/scripts/test_sharedarray.jl:5 [inlined]
#13 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/Distributed/src/macros.jl:301
#160 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/Distributed/src/macros.jl:87
#103 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/Distributed/src/process_messages.jl:290
run_work_thunk at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/Distributed/src/process_messages.jl:79
run_work_thunk at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/Distributed/src/process_messages.jl:88 …
Run Code Online (Sandbox Code Playgroud)

parallel-processing distributed julia

2
推荐指数
1
解决办法
61
查看次数

Pytorch Python 分布式多重处理:收集/连接不同长度/大小的张量数组

如果多个 GPU 级别上有不同长度的张量数组,则默认all_gather方法不起作用,因为它要求长度相同。

例如,如果您有:

if gpu == 0:
    q = torch.tensor([1.5, 2.3], device=torch.device(gpu))
else:
    q = torch.tensor([5.3], device=torch.device(gpu))
Run Code Online (Sandbox Code Playgroud)

如果我需要收集这两个张量数组,如下所示:

all_q = [torch.tensor([1.5, 2.3], torch.tensor[5.3])

默认torch.all_gather不起作用,因为长度2, 1不同。

python distributed concatenation multiprocessing pytorch

2
推荐指数
1
解决办法
1630
查看次数

如何将加密信息存储在公共DVCS存储库中?

我有多个开发人员正在开发的项目.我们都在使用相同的git存储库.

目前,我没有将生产服务器配置存储在存储库中,因为配置文件包含数据库凭据.

我想开始将这些配置存储在存储库中,所以我在考虑加密配置文件,然后再将它们保存在DVCS中.

  1. 你们怎么看待这个想法?
  2. 怎么会这样做?

git encryption distributed dvcs

1
推荐指数
1
解决办法
726
查看次数

为什么Ricart-Agrawala算法无死锁?

有人能解释为什么这个算法没有特别的死锁吗?谢谢

algorithm distributed deadlock

1
推荐指数
1
解决办法
1574
查看次数

用于Java项目的内存数据网格

我想在我的java项目中使用内存数据网格.我知道有一些相关的产品,如VMWare GemFire,GigaSpaces XAP,IBM eXtreme Scale等.有人可以根据他们使用这些工具的经验以及他们如何相互比较来详细说明吗?谢谢,亚历克斯

datagrid distributed caching scalability

1
推荐指数
1
解决办法
2308
查看次数

Erlang gen_server如何在另一个节点上启动gen_server?

我有一个Erlang应用程序,它有点太资源不足以留在一个节点上.我正在使gen_servers从一个进程转移到另一个进程 - 结果相对容易.我处于最后一个障碍:获取创建这些gen_servers的工厂进程以在远程节点而不是本地节点上生成它们.start_link的默认行为显然只在本地启动,但我没有看到任何更改它的选项.

似乎我必须要有创造力的解决方案,并想看看是否有人已经实现了这样的事情,并取得了任何成功.IOW,推荐的解决方案是什么?

编辑

我正在查看通过调用触发的调用链:

gen_server:start_link(?Module, Args, [])
Run Code Online (Sandbox Code Playgroud)

gen_server:START_LINK/3:

start_link(Mod, Args, Options) ->
    gen:start(?MODULE, link, Mod, Args, Options).
Run Code Online (Sandbox Code Playgroud)

创:启动/ 5:

start(GenMod, LinkP, Mod, Args, Options) ->
    do_spawn(GenMod, LinkP, Mod, Args, Options).
Run Code Online (Sandbox Code Playgroud)

创:do_spawn/5:

do_spawn(GenMod, link, Mod, Args, Options) ->
    Time = timeout(Options),
    proc_lib:start_link(?MODULE, init_it,
                        [GenMod, self(), self(), Mod, Args, Options], 
                        Time,
                        spawn_opts(Options));
Run Code Online (Sandbox Code Playgroud)

proc_lib:START_LINK/5:

start_link(M,F,A,Timeout,SpawnOpts) when is_atom(M), is_atom(F), is_list(A) ->
    Pid = ?MODULE:spawn_opt(M, F, A, ensure_link(SpawnOpts)),
    sync_wait(Pid, Timeout).
Run Code Online (Sandbox Code Playgroud)

这最终让我们感到有趣.有一个匹配的spawn_opt/4:

spawn_opt(M, F, A, Opts) when is_atom(M), is_atom(F), is_list(A) ->
    ...
    ... …
Run Code Online (Sandbox Code Playgroud)

erlang distributed erlang-otp nodes gen-server

1
推荐指数
1
解决办法
2028
查看次数

从golang中的tcp连接读取

在像bytes_read,err:= conn.Read(tmp)这样的语句中,我希望读取尝试x秒,如果没有读取开始,我希望代码继续检查一些连接并再次循环并尝试读取.我可以使用select-case并生成两个goroutine,一个尝试读取,另一个尝试超时.但是在这里,如果超时发生,首先代码将继续,检查条件并再次生成例程以尝试从连接读取而前面的读取例程仍然存活.我希望以前的例程在发生超时时死掉.

关于我如何进行的任何建议?

architecture distributed network-programming go server

1
推荐指数
1
解决办法
6098
查看次数