标签: message-passing

芹菜:禁用工人之间的心跳

我正在使用Redis后端和代理在Celery中处理数据处理例程。许多工人(约200名)与经纪人互动以获取任务并执行这些任务。但是,我的所有工人都相互发送心跳信号,这使他们的日志中充满了各种杂物,如下所示:

[2018-05-13 15:38:00,737: INFO/MainProcess] missed heartbeat from celery@d12chas387.crc.nd.edu
[2018-05-13 15:38:00,737: INFO/MainProcess] missed heartbeat from celery@d12chas530.crc.nd.edu
[2018-05-13 15:38:00,737: INFO/MainProcess] missed heartbeat from celery@d12chas531.crc.nd.edu
[2018-05-13 15:38:00,738: INFO/MainProcess] missed heartbeat from celery@d12chas351.crc.nd.edu
[2018-05-13 15:38:00,738: INFO/MainProcess] missed heartbeat from celery@d12chas515.crc.nd.edu
[2018-05-13 15:38:00,739: INFO/MainProcess] missed heartbeat from celery@d12chas492.crc.nd.edu
Run Code Online (Sandbox Code Playgroud)

工人们永远不要直接相互联系,他们都应该从经纪人那里获得所需的信息。是否可以禁用辅助节点之间的心跳?如果是这样,由于某种原因我还没有看到这是个坏主意吗?

python message-passing redis celery

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

PHP/Javascript将消息传递到另一个页面

那么让我解释一下:

我发布评论时基本上都是这样想的(我使用js/jquery脚本将字符串发送到插入数据库的insert.php),你会得到2+分.现在我已经这样做了你获得+2分,但我想显示像stackoverflow这样的消息.我已经知道如何显示像stackoverflow这样的消息,但是在某种程度上我需要从insert.php发送(在你插入之后),这个:

<div id='message' onclick="closeNotice()" style="display: none;">
Hey, <b><? echo $pusername; ?></b> - You've just got +<? echo $gpm; ?> points for your comment!
<a href="#" class="close-notify" onclick="closeNotice()">X</a>
</div>
Run Code Online (Sandbox Code Playgroud)

到index.php ..

我在想,也许的编码到我的当前脚本(即正在发送字符串insert.php),它应该找到#message和#box(DIV称为"盒子"中的index.php)扔.

但是我该怎么做呢?我应该喜欢,在你通过insert.php之后,然后你在javascript中激活一个函数:

function showmessage()  { 
    $("#box").html(data).find("#message").fadeIn("slow")
}
Run Code Online (Sandbox Code Playgroud)

正如我所说,你激活脚本做:

<script type="text/javascript" language="javascript">
showmessage();
</script>
Run Code Online (Sandbox Code Playgroud)

成功插入数据库并向用户提供点后?我刚刚测试了这个,我不能让它工作.我的网站与phpBB登录会话(我已经获得的phpBB论坛)集成,所以我不认为我可以使用$ _SESSION.并且insert.php在框架中打开.我的问题是,操作和确认的显示发生在不同的页面上.

html javascript message-passing

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

为什么我无法将此消息传递给选项卡中运行的所有框架?

主题

我正在创建一个 chrome 扩展,它要求我将消息从我的事件页面发送到在特定框架上运行的内容脚本

单击上下文菜单选项时将调用消息传递操作。仅当焦点元素被 API 分类时,该选项才可editablechrome.contextMenus。我需要将它发送到包含该元素的最里面的框架。(这样我就可以通过访问该对象来修改其内容document.activeElement

从 Chrome 41 开始,您可以通过填充函数frameID参数的参数值来向特定框架发送消息。optionschrome.tabs.sendMessage()

然而,Chrome 41 目前还处于测试阶段,所以我显然不能指望这个功能与我用户的浏览器兼容。

因此,我计划向选项卡中的所有框架发送消息(通过在属性设置all_frames为 true 的内容脚本上注册侦听器)。window.location.href进入内容脚本后,我可以通过将 的值与我期望的值进行比较来检查这是否是正确的框架。

问题

看起来好像我对事件侦听器或消息传递的工作方式有误解。文档非常清楚地表明,chrome.tabs.sendMessage()应该向选项卡中的每个框架发送一条消息,但似乎每条chrome.runtime.onMessage()消息只能调用一个事件侦听器,即使注册了许多侦听器。实际调用哪一个似乎是由页面的初始加载以某种方式决定的。

这可以通过我的扩展的简化版本来演示:

清单.json:

{
    "manifest_version":2,

    "name":"Demo",
    "description":"This is a demonstration",
    "version":"1.0",

    "permissions":[
     "<all_urls>",
     "contextMenus"
     ],

    "background": {
       "page":"background.html",
       "persistent":false
    },

    "content_scripts":[{
        "matches":["<all_urls>"],
        "js":["content.js"],
        "all_frames":true
     }]
}
Run Code Online (Sandbox Code Playgroud)

背景.html:

<!DOCTYPE text/html>
<html>
 <head>
  <textarea id="temp"></textarea>
  <script src="event.js"></script>
 </head>
 <body>
 </body>                                                                                                                                                                   
</html>
Run Code Online (Sandbox Code Playgroud)

事件.js:

chrome.contextMenus.onClicked.addListener(requestHandler);  
chrome.contextMenus.create({ …
Run Code Online (Sandbox Code Playgroud)

javascript dom google-chrome message-passing google-chrome-extension

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

用例类作为Scala中的消息

我在Horstman书(第291-292页)中的示例代码中定义和使用案例类 作为简单Scala actor系统中的消息.

问题是在接收模式匹配中没有识别类,并且控制正在落入case _ =>语句.

代码如下所示.一切都适用于非案例类消息.

SENDER:在演员Rcoord中,行为方法是:

def act() {
  alive(9000) 
  register('rcoord, self) 
  proc_reg.start                   // start the process register actor  

  loop {
    try {
      receive {
        case 'process => 
          process_counter += 1
          process_number = process_counter
          spawn_process(process_number, sprocs)
          case class CreateTS(xxx: Int)
          proc_reg ! CreateTS(process_number)

        case 'stats => 
          Console.println("received msg from client to view statistics")
          //sender ! 'ok

        case 'stop => 
          Console.println("received msg that client is terminating")
          //sender ! 'bye
      } // end receive …
Run Code Online (Sandbox Code Playgroud)

abstract-class scala case message-passing

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

对 chrome.runtime.sendMessage() 的单个函数调用中的多条消息;

chrome.runtime.sendMessage();
Run Code Online (Sandbox Code Playgroud)

我想从我的 contentscript.js 向 popup.js 传递多个(具体为 2 个)消息。

我不需要这个函数的其他参数,我只需要message参数。

在我的 contentscript.js 我有这个:

chrome.runtime.sendMessage(message1);

chrome.runtime.sendMessage(message2);
Run Code Online (Sandbox Code Playgroud)

这是我的 popup.js:

chrome.runtime.onMessage.addListener(function(messsage1){
 //code for handling the message
});

chrome.runtime.onMessage.addListener(function(messsage2){
 //code for handling the message
});
Run Code Online (Sandbox Code Playgroud)

我想将这两个函数组合成一个函数并处理如下消息:

 chrome.runtime.onMessage.addListener(function(){
   // how to write the parameter for this function, I can't use ',' right?
   // code for handling the message1, message2
});
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

javascript google-chrome message-passing google-chrome-extension

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

如何将 localstorage 从 popup.js 传递到 content.js

我想将数据从 popup.hmtl 的本地存储传递到内容脚本 content.js 我使用 popup.html 接收用户名和密码并将其存储在本地存储中。现在我想在执行之前将数据传输到内容脚本。

**popup.html**
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" async src="popup.js"></script>
</head>
<body>

<table>
<tr>
<td>
Username:
<td><input id="u1" type="text" name="uname">
</tr>
<tr>
<td>
Password:
<td><input id="u2" type="password" name="pass">
</tr>
<tr>
<td>
<td>
<input id="clickme" type="button" value="save" />
</tr>

</table>

<div id="result"></div>
<div id="result2"></div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

弹出窗口.js

document.getElementById('clickme').onclick=myfunction;
var sname = localStorage.getItem("username1");
var spass=localStorage.getItem("password1");
document.getElementById("result").innerHTML = localStorage.getItem("username1");
document.getElementById("result2").innerHTML=localStorage.getItem("password1");

function myfunction(){

// Check browser support
if (typeof(Storage) != "undefined") {

    var uname="bhuwan";
    var username=document.getElementById("u1").value;
    var password=document.getElementById("u2").value; …
Run Code Online (Sandbox Code Playgroud)

javascript message-passing google-chrome-extension content-script

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