标签: worker

Rails Resque外部模块中未定义的方法错误

我无法从resque worker中的包含模块调用方法.在下面的示例中,当我尝试say在worker(在TestLib模块中)中调用方法时,我一直得到未定义的方法错误.我已将代码简化为基础知识来说明问题:

控制器 (/app/controllers/test_controller.rb)

class TestController < ApplicationController
  def testque
    Resque.enqueue( TestWorker, "HI" )
  end
end
Run Code Online (Sandbox Code Playgroud)

(/lib/test_lib.rb)

module TestLib
  def say( word )
    puts word
  end
end
Run Code Online (Sandbox Code Playgroud)

工人 (/workers/test_worker.rb)

require 'test_lib'

class TestWorker
  include TestLib

  @queue = :test_queue

  def self.perform( word )
    say( word ) #returns: undefined method 'say' for TestWorker:Class
    TestLib::say( word ) #returns: undefined method 'say' for TestLib::Module
  end
end
Run Code Online (Sandbox Code Playgroud)

Rakefile (resque.rake)

require "resque/tasks"
task "resque:setup" => :environment
Run Code Online (Sandbox Code Playgroud)

我正在使用以下命令运行resque: rake environment resque:work QUEUE='*'

Gems:rails(3.0.4)redis(2.2.2)redis-namespace(1.0.3)resque(1.19.0)

服务器:nginx/1.0.6 …

ruby-on-rails worker resque

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

Node.js将具有函数定义的对象发送到工作线程

所以我正在开发Node.js中的一个项目,我想打开一些额外的线程来更有效地处理处理负载.但是我正在使用带有函数定义的类,当我尝试将这些对象发送到工作线程时,对象中定义的函数会消失,而我只剩下对象中的其他字段.有没有办法向worker发送一个对象并保留这些函数,以便可以在worker中调用它们?

var cluster = require('cluster');

if(cluster.isMaster){
    Monster = function(species){
        this.attack = function(){
            console.log('CHOMP');
        };
        this.name = species;
    };
    var vamp = new Monster('vampire'),
    worker   = cluster.fork();
    worker.send({'monster' : vamp});
    }
else{
    process.on('message', function(msg) {
        console.log(msg.monster); //this logs "{ name: 'vampire' }"  
        msg.monster.attack(); //TypeError: Object #<Object> has no method 'attack'
    });
}
Run Code Online (Sandbox Code Playgroud)

multithreading function cluster-computing worker node.js

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

Sidekiq是否按照发送给工人的顺序执行工作?

我有一个rake任务,它将按顺序调用另外4个rake任务:

rake:one
rake:two
rake:three
rake:four
Run Code Online (Sandbox Code Playgroud)

一个,两个和三个Rake任务正在获取数据并将其添加到我的数据库中.然后rake:four将对该数据做一些事情.但我需要确保首先完成一,二和三.每个rake任务实际上都是让Sidekiq工作人员在后台运行.在这种情况下,是否所有工人都rake:one先完成,然后rake:two等等?

如果没有,我如何确保工人按顺序执行?

rake ruby-on-rails worker sidekiq

8
推荐指数
2
解决办法
4182
查看次数

Node.js的Heroku工作者

我从Heroku开始,我有一个webapp,其中一部分需要每周运行一次(周一最好).我一直在读一些关于工人的事情:这里,这里这里 ......但我还是有很多疑惑:

1)这些工人在没有严格控制的情况下在背景上运行,不能安排每周运行一次.或者我错了?如果我错了,我怎么安排它?

2)为了使它们起作用,我到底需要做什么?类型

 web:     node webApp.js
 worker:  node worker.js
Run Code Online (Sandbox Code Playgroud)

在Procfile中(其中worker.js是程序的一部分,每周只需运行一次).这就是全部?? 没有其他的??太简单??

3)最后一个......但最重要的是."鳞片般的钱"......一个dyno和一个工人一样,所以如果你有一个dyno在网上运行你需要为工人买另一个......不是吗?在价格清单上额外的dyno花费34.5 $(27.87€).它不便宜...所以我想知道我是否正确,如果你想要一个工人,是否有必要买一个dyno?

heroku worker node.js

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

在Apache Spark中区分驱动程序代码和工作代码

在Apache Spark程序中,我们如何知道代码的哪一部分将在驱动程序中执行,哪部分代码将在工作节点中执行?

带着敬意

driver worker execution apache-spark

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

网络工作者突然终止

我在chrome上发起了一个web worker,它有一个简单的函数,它被重复调用setTimeout.令人惊讶的是,在调用函数大约1000次之后,Web worker终止了.有谁能解释为什么?我猜chrome正在做一些优化.

webworker.js

function hi() {
    postMessage('1');
    setTimeout(hi, 1);
}
hi();
Run Code Online (Sandbox Code Playgroud)

main.js

var blob = new Blob([code]);
var blobURL = window.URL.createObjectURL(blob);
var worker = new Worker(blobURL);
worker.onmessage = function(data) {
    console.log(data.data); // gets called around 1000 times and done
};
Run Code Online (Sandbox Code Playgroud)

编辑:转载在一个小提琴:http: //jsfiddle.net/meovfpv3/1/ 似乎需要任意长的onmessage回调停止射击,快几秒钟,只要+5分钟

javascript google-chrome worker web

8
推荐指数
2
解决办法
890
查看次数

CallbackToFutureAdapter 中的调用是在第二次重建项目时执行的

我在使用 ListenableFuture 时遇到了问题,这是整个代码

主活动.java:

package com.example.app16;

import android.os.Bundle;
import android.view.View;

import androidx.appcompat.app.AppCompatActivity;
import androidx.work.Configuration;
import androidx.work.OneTimeWorkRequest;
import androidx.work.WorkManager;

public class MainActivity extends AppCompatActivity {
    WorkManager w;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        WorkManager.initialize(this, new Configuration.Builder()
                .setMinimumLoggingLevel(android.util.Log.INFO)
                .build());
        w = WorkManager.getInstance(getApplicationContext());

        OneTimeWorkRequest j = new OneTimeWorkRequest.Builder(lWorker.class).build();
        w.enqueue(j);
    }

    public void click(View view) {
        w.cancelAllWork();
    }
}
Run Code Online (Sandbox Code Playgroud)

lWorker.java:

package com.example.app16;

import android.content.Context;
import android.util.Log;

import androidx.annotation.NonNull;
import androidx.concurrent.futures.CallbackToFutureAdapter;
import androidx.work.ListenableWorker;
import androidx.work.WorkerParameters;

import com.google.common.util.concurrent.ListenableFuture;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response; …
Run Code Online (Sandbox Code Playgroud)

multithreading android garbage-collection worker android-studio

8
推荐指数
0
解决办法
974
查看次数

Heroku:如何扩展到多个工人

我刚刚在 Heroku 上支付了一个 Hobby 帐户。它说我最多可以有 7 个工人 dynos。如何打开多个测功机?

这是我的 Procfile:

web: node app.js
worker: node worker.js
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下命令扩展工人:

heroku ps:scale worker=3
Run Code Online (Sandbox Code Playgroud)

但我收到此错误消息:

! Cannot update to more than 1 Hobby size dynos per process type. 
Run Code Online (Sandbox Code Playgroud)

heroku worker node.js

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

Kubernetes Master Worker Node Kubeadm Join 问题

我正在使用 Kubeadm 在笔记本电脑的 Oracle Virtualbox 上安装 Kubernetes。一切正常,直到我在 Kuberenets Worker 节点上运行此命令以加入 Master 节点我在运行后收到错误

sudo kubeadm join 192.168.56.100:6443 --token 0i2osm.vsp2mk63v1ypeyjf     --discovery-token-ca-cert-hash sha256:18511321fcc4b622628dd1ad2f56dbdd319bf024740d58127818720828cc7bf0
Run Code Online (Sandbox Code Playgroud)

错误

[preflight] Running pre-flight checks
        [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/
error execution phase preflight: [preflight] Some fatal errors occurred:
        [ERROR DirAvailable--etc-kubernetes-manifests]: /etc/kubernetes/manifests is not empty
        [ERROR FileAvailable--etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf already exists
        [ERROR Port-10250]: Port 10250 is in use
        [ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists
[preflight] If you …
Run Code Online (Sandbox Code Playgroud)

installation virtualbox master worker kubernetes

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

工兵和服务工作者

这更像是一个 Service Worker 问题,尽管它可能更具体到Sapper。我真的不知道,因为我是第一个管理我与 Service Workers 斗争的人,几乎没有使用过它们,并且感觉它们经常让我感到痛苦。

基本上,无论我做什么,我都无法让 localhost:3000 停止加载应用程序的旧副本。我已经以各种方式取消注册服务工作者,包括尝试以编程方式取消注册。我清除了缓存,甚至清除了浏览器中的所有浏览数据。我的 Sapper 开发环境中的服务器没有运行。

这在 Brave 中发生,但在 Opera 中表现相同,并且似乎是一般的 Chromium 场景。我不使用 Firefox 或 Safari,但可能很快就会测试其中的一个,看看那里会发生什么行为。

这是一个剪辑,显示了我如何尝试取消注册 Service Worker。

https://youtu.be/Cb24I_fEklE

service worker sapper

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