标签: polling

什么时候轮询比中断好?

我在看这张照片: 在此处输入图片说明

并且有 2 个关于它的问题: 1. 为了通过中断引用轮询,磁盘应该快多少?

我认为这是因为 ISR 和进程跳跃(使用中断时)-例如,使用快速 SSD 时轮询会更好,其中轮询比中断(ISR+ 调度程序)花费的时间更少。我错了吗?

第二个问题是:如果在我的第一个问题中我的磁盘比 SSD 慢,但仍然很快 - 有什么理由更喜欢轮询吗?

我想知道我将拥有大量 I/O 的事实 - 读取请求是否足以让我更喜欢轮询。

谢谢!

io operating-system interrupt polling

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

带有 TCP 流的 TLS/SSL 中的 ssl_read() 不返回 BIO_write() 写入的整个缓冲区

以下代码部分的目的是轮询套接字 fd-set,如果数据(ssl 加密)可用,则读取它并通过 openssl 库解密。底层传输层是 TCP Stream,因此数据以流的形式出现(而不是数据包)。

现在,如果从对等方快速连续发送了多个数据包(假设有 2 个长度为 85 字节的数据包),那么 TCP 接收将返回同一缓冲区中的两个数据包,接收的字节数为 170。因此,我们有一个携带 2 个 ssl 加密数据包(或 n 个数据包)的缓冲区。对于 ssl 解密,我们需要调用 BIO_write() 将缓冲区写入 ssl_bio,然后调用 ssl_read() 来检索解密的缓冲区。但是,尽管 BIO_write() 正在向 bio 中写入 170 个字节,但 ssl_read() 似乎只返回一个解密的数据包(43 个字节)。没有返回错误。如何知道 bio 中是否还有未处理的字节。有什么出路吗或者代码中有什么错误?

当在 tcp recv() 中接收到单个数据包时,代码工作正常。

int iReadyFds = poll( PollFdSet, iFdCount, iTimeout);

for(iFdIndx = 0; iFdIndx < (iFdCount) && (iReadyFds>0); ++iFdIndx)
{
    if((PollFdSet[iFdIndx].events == 0) ||
       (PollFdSet[iFdIndx].fd == 0) ||
       (PollFdSet[iFdIndx].revents != POLLIN)
       )
    {
        continue;
    }

    /* we have data to …
Run Code Online (Sandbox Code Playgroud)

c sockets openssl tcp polling

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

Git/Jenkins 轮询忽略提交而不忽略目录

我以前使用 SVN 作为我们的源代码控制,当使用轮询忽略某些路径时,我已经能够使用正则表达式路径(如“/project/buildscripts/.*”)在 Jenkins 配置中设置它们

现在我们正在使用 git,我有一个充满基础设施项目的存储库,如下所示:

[root] /project.1 /project.2 /project.3 allprojects.sln

当通过忽略 /project.2 和 /project.3 上的轮询将推送推入该目录时,我只想在 project.1 目录中构建 csproj

因为我试图忽略路径中的一个句点,所以我在解决正确的语法时遇到问题

对于标有“轮询忽略某些路径中的提交”的 Git 部分,我尝试过:

Project.2/.* (不会忽略推送到的任何目录...) /Project.2/.* (忽略推送到所有目录) /Project.2/.* (忽略推送到所有目录) ...

我需要帮助解决“轮询忽略某些路径中的提交”的包含区域接受的语法。有谁知道忽略 git 中的提交所需的语法吗?

git polling jenkins

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

将基本轮询变成长轮询

我正在开发一个聊天应用程序,到目前为止,我每两秒轮询一次我的服务器以获取消息。为了使聊天更即时,我想实现长轮询。我正在尝试实现这一点为它JS.info 指南,但我一直没有达到我打算达到的目标。任何人都可以为我的案例指出这一点吗?

我在 react 中有一个自定义钩子,现在是基本的轮询。

仅供参考:我是初学者,现在不会使用 WS 或 Socket.io。在这一点上对我来说太过分了。

提前致谢!

export default function useGetChatMessages(_id) {
  const [chatMessages, setChatMessages] = React.useState([]);

  React.useEffect(() => {
    const interval = setInterval(() => {
      getChatMessages(_id).then(fetchedChatMessages => {
        setChatMessages(fetchedChatMessages);
      });
    }, 2000);
    return () => clearInterval(interval);
  }, [_id]);

  return chatMessages;
}
Run Code Online (Sandbox Code Playgroud)

这是我使用 express 的服务器功能。我想它应该在这里实现而不是在我的钩子中

router.get('/:id/messages', async (request, response) => {
  try {
    const chat = await Chat.findById(request.params.id);
    response.json(chat.messages);
  } catch (error) {
    console.log(error);
    response.status(500).json({ message: error.message });
  }
});
Run Code Online (Sandbox Code Playgroud)

javascript polling long-polling reactjs

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

如何测试 stdin 在 julia 中是否有可用输入?

我想检测stdin在短时间内是否有输入,并以任何一种方式继续执行,结果存储在Bool. (我的真正目标是在终端中运行的模拟上实现一个暂停按钮。第二次按键应该取消暂停程序,它应该继续执行。)我尝试使用,poll_fd但它不起作用stdin

julia> FileWatching.poll_fd(stdin, readable=true)
ERROR: MethodError: no method matching poll_fd(::Base.TTY; readable=true)
Run Code Online (Sandbox Code Playgroud)

有没有办法对朱莉娅起作用?我找到了一个适用于 python 的解决方案,我已经考虑通过 PyCall 使用它,但我正在寻找

  1. 一种更干净、纯粹的朱莉娅方式;和
  2. 一种不会对抗或可能干扰 julia 使用 libuv 的方式。

polling julia

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

有没有办法在C#中调用套接字只有在可以读取的东西时?

我想知道当只有一个条件(数据可用于读取)时,是否有一种方法可以在c#中轮询套接字,我知道socket.Poll方法但是如果有任何数量的话,这可以返回true指定的3个条件返回true,如下所示:MSDN:Socket.Poll

.net c# sockets polling

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

Hudson工作区在建筑时被锁定

我最近在CI环境中遇到了问题.

我正在使用Hudson ver.1.395.1SVN ver 1.4.2.

我的Hudson不断轮询SVN进行任何更改,如果是这样,它将启动一个版本.

最近此操作失败,并显示以下消息

Updating https://MY_SVN_URL/trunk
Workspace appear to be locked, so getting a fresh workspace
Checking out https:/MY_SVN_URL/trunk
ERROR: Failed to check out https://MY_SVN_URL/trunk
org.tmatesoft.svn.core.SVNException: svn: Working copy '/Hudson/workspace/MY_PROJECT_NAME' locked; try performing 'cleanup'
Run Code Online (Sandbox Code Playgroud)

必须注意的是,这只发生在我提交更改并且Hudson尝试触发构建时(通过轮询SVN).当我手动触发构建时,问题不会发生.

在我看来,轮询是锁定Hudson工作区,更新操作是找到锁定的工作区.

以前有没有人遇到过同样的情况?对此有何解决方案?

谢谢.

svn hudson polling jenkins

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

轮询不在React JS mixin中工作

所以我创建了以下mixin:

var Polling = {

    startPolling: function() {
        var self = this;

        setTimeout(function() {
            self.poll();

            if (!self.isMounted()) {
                return;
            }

            self._timer = setInterval(self.poll(), 15000);
        }, 1000);
    },

    poll: function() {
        if (!this.isMounted()) {
            return;
        }

        var self = this;
        console.log('hello');
        $.get(this.props.source, function(result) {
            if (self.isMounted()) {
                self.setState({
                    error: false,
                    error_message: '',
                    users: result
                });
            }
        }).fail(function(response) {
            self.setState({
                error: true,
                error_message: response.statusText
            });
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

注意console.log('hello');poll功能.根据这个逻辑,我应该每15秒看一次.

现在让我们看一下react组件:

//= require ../../mixins/common/polling.js
//= require ../../mixins/common/state_handler.js
//= require …
Run Code Online (Sandbox Code Playgroud)

javascript polling ajax-polling reactjs

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

正确进行快速轮询的方法?

我对其他编程语言有丰富的经验,但是对Swift 3则没有太多的经验。我想进行轮询循环。这是我写的:

DispatchQueue.global(qos: .userInitiated).async {
            [unowned self] in
            while self.isRunning {
                WebService.getPeople(completion: nil)
                sleep(100)
            }
        }
Run Code Online (Sandbox Code Playgroud)

这对我来说很好,每隔100秒进行一次轮询,然后使该线程休眠。我想知道的是,在Swift 3中执行此操作的正确方法是吗?

polling grand-central-dispatch swift

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

Vaadin 8:每1分钟从服务器重新加载网格数据

我正在尝试为网格提供自动刷新功能,基本上每隔n秒用服务器的最新数据更新网格.

每当用户启用自动刷新时,我就能够实现PollListner.

                UI ui= TestUI.getCurrent();
                Boolean value = isRefreshChkBox.getValue();
                PollListener listener = e -> {
                    explorer.reloadUI();
                };
                if (value) {

                    String refreshRateValue = refreshRateTxtField.getValue();
                    int refreshRate = Integer.valueOf(refreshRateValue);
                    int millis = (int) TimeUnit.SECONDS.toMillis(refreshRate);

                    absUI.setPollInterval(millis);

                    absUI.addPollListener(listener);
                } else {
                    absUI.setPollInterval(-1);
                    absUI.removePollListener(listener);
                }
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,我每次启用autorefresh时都会添加PollListener,并在禁用时将其删除.

我在这里发现了类似的问题我在这里找到了类似的问题VAADIN 7:以5分钟为间隔刷新Vaadin View的最简单方法是什么?

但是想知道是否有更好的方法来实现简单的用例AutoRefresh UI?应该在哪里实施PollListener?我想为视图创建一次PollListener,并且只要每次用户更改刷新率时更新PollInterval.

有关哪种方法更好的指针还是Vaadin有一个全新的概念来实现这一目标?

TIA

java refresh polling vaadin vaadin8

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