标签: polling

BizTalk - 从DB接收端口读取两次

我的接收端口是sqlBinding和类型轮询.它调用SP来获取记录,并根据过滤条件启动相应的业务流程.BizTalk组由2台服务​​器组成; 因此2 ReceiveHostInstances.如果两个主机实例都在运行 - 某些点,则相同的请求被读取两次 - 在接收器端导致重复.但是,为什么反应端口不止一次读取同一记录呢?读取更新记录并更新它的proc,以便它不会再次被删除.

我在提交10个请求时观察到了这种情况; 接收端口读取11次,11个编排开始.

我尝试了同一个(10个请求)与一个主机(在我的开发中),接收只显示10.有线索吗?

biztalk polling

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

文件描述符轮询

我创建了一个以下程序,我希望在其中轮询我在程序中打开的文件的文件描述符。

#define FILE "help"

int main()
{
        int ret1;
        struct pollfd  fds[1];

        ret1 =  open(FILE, O_CREAT);

        fds[0].fd = ret1;
        fds[0].events = POLLIN;

        while(1)
        {
                poll(fds,1,-1);

                if (fds[0].revents & POLLIN)
                        printf("POLLING");
        }
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

它正在无限循环中。我期望在文件发生某些操作时运行循环。(它是一个 ASCII 文件)请帮助

c unix linux polling

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

如何在简单的网站上浏览更新?

我有一位教授随机更新他的网站,明天就要完成作业,似乎希望我们每小时检查一次.

这听起来像是一个程序的工作.

他的网站很简单,完全是HTML,甚至没有任何javascript.我怎么能以编程方式检测到他网站的任何更改/更新?

html polling

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

投票服务 - C#

有人能帮助我吗?

我正在创建一个连接到SQL数据库的Windows服务,并检查表中的日期并将其与今天的日期进行比较,并更新该数据库中的字段,例如,如果日期等于今天的日期,则该字段将设置为true .

我遇到的问题是,当我启动服务时,它不会这样做但是当我以正常形式执行它时它完美地工作.

我的代码如下:

//System.Timers
Timer timer = new Timer();
protected override void OnStart(string[] args)
{
    timer.Elapsed += new ElapsedEventHandler(OnElapsedTime);
    timer.Interval = 60000;
    timer.Enabled = true;
}

private void OnElapsedTime(object source, ElapsedEventArgs e)
{
    int campid = 0;
    var campRes = new ROS.Process.CampaignServiceController().GetCampainInfo();

    foreach (var s in campRes)
    {
        campid = s.CampaignId;

        if (s.CampEndDate.Date < DateTime.Today.Date)
        {
            //WriteDataToFile("Not Active : " + campid.ToString());
            new ROS.Process.CampaignServiceController().SetCampainStatusFalse(campid);
        }
        else
        {
            //WriteDataToFile("Active : " + campid.ToString());
            new ROS.Process.CampaignServiceController().SetCampainStatusTrue(campid);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# service polling

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

在两个输入引脚上检测两个同时信号的最佳做法

我需要做以下事情:我在微控制器上有2个输入引脚,并且有可能在一个或另一个上接收到一个信号,但也可能两者在外部物理连接,并且信号同时到达.

问题:如果我使用类似的东西

if (PINB.1 && PINB.2)
{
  // ...
}
Run Code Online (Sandbox Code Playgroud)

存在百万分之一的机会,信号在两个值被加载到寄存器之间到达以进行逻辑AND操作.当我离开时if,两个引脚都很高,但我仍然检测到只有第二个引脚很高.

我尝试了不同的解决方案,到目前为止,最好的选择是在任何一个输入高电平时启动一个非常短的倒计时,当计时器(最多几毫秒)运行时,我再次检查.

有谁知道更简单或更好的解决方案?我认为这个问题非常普遍,但到目前为止我找不到任何"经过验证的"方法.

编辑:我从硬件上知道,在一个边缘之后,引脚将保持其值至少几十毫秒.噪音已被照顾.

PINB.1和PINB.2就是例子.它们可能位于不同的端口上,因此对整个端口进行位掩码可能存在不够灵活的风险.

c embedded concurrency polling

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

找出一个线程是否已经启动?

我有以下代码:

var x = new Thread(new ThreadStart(Delegate));
x.Start();
Run Code Online (Sandbox Code Playgroud)

这将创建一个新线程并启动它.

如何在没有do while循环的情况下检测到线程X已经开始执行?

c# multithreading .net-4.0 dispatcher polling

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

PHP 如何优雅地关闭本地套接字连接...?

我有一个 PHP 客户端通过纯文本 Unix 域套接字连接到本地 C 服务器程序。但是,我可以让它很好地关闭的唯一方法是,如果我使用以下命令完成套接字会话:

stream_socket_shutdown($sock, 1); // shutdown socket writing
usleep(500 * 1000);           // wait for 0.5 seconds
fclose($sock);                // actually close the socket (finally)
Run Code Online (Sandbox Code Playgroud)

我想像我的 C 客户端一样优雅地关闭它:-

shutdown(connection_fd, SHUT_WR);     // tell server we've stopped sending queries
// Read from the socket until poll(connection_fd) yields POLLRDHUP / POLLHUP / POLLERR / POLLNVAL
shutdown(connection_fd, SHUT_RDWR);   // tell connection we've stopped listening
close(connection_fd);                 // close the whole connection (finally)
Run Code Online (Sandbox Code Playgroud)

但是,PHP 似乎没有直接的 socket poll() 等效项。如何让 PHP 优雅地关闭我的本地套接字?

php sockets linux polling unix-socket

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

重复timerfd事件适用于epoll而不是poll

我正在使用timerfd 实现一个计时器。这是一个相对计时器,我只需要按照设置的速率永远重复。我想对这个事件进行轮询,最初尝试使用轮询。当我这样做时,我会第一次看到计时器事件,然后就再也看不到了。但是,当我更改为使用 epoll(timerfd 的设置方式完全没有改变)时,它按预期工作。

这是带有轮询的代码:

#include <sys/timerfd.h>
#include <sys/poll.h>
#include <sys/epoll.h>
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
#include <unistd.h>

int main(int ac, char *av[])
{
    struct pollfd p;
    int timerfd;
    struct itimerspec timerValue;

    /* clear pollfd */
    bzero(&p, sizeof(p));

    /* set timerfd */
    timerfd = timerfd_create(CLOCK_REALTIME, 0);
    if (timerfd < 0) {
        printf("failed to create timer fd\n");
        exit(1);
    }
    bzero(&timerValue, sizeof(timerValue));
    timerValue.it_value.tv_sec = 1;
    timerValue.it_value.tv_nsec = 0;
    timerValue.it_interval.tv_sec = 1;
    timerValue.it_interval.tv_nsec = 0;

    /* set events */
    p.fd = timerfd; …
Run Code Online (Sandbox Code Playgroud)

c linux timer polling

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

如何在等待回调中保存对象?

我的代码调用服务器并获取old-response.

然后我想轮询直到我从服务器(又名new-response)得到不同的响应。

II 使用 while 循环我可以保存new-response并在轮询后使用它。

如果我使用我awaitility怎样才能new-response轻松获得?

这是我的代码:

public Version waitForNewConfig() throws Exception {
    Version oldVersion = deploymentClient.getCurrentConfigVersion(appName);
    await().atMost(1, MINUTES).pollInterval(5, SECONDS).until(newVersionIsReady(oldVersion));
    Version newVersion = deploymentClient.getCurrentConfigVersion(appName);

}

private Callable<Boolean> newVersionIsReady(Version oldVersion) {
    return new Callable<Boolean>() {
        public Boolean call() throws Exception {
            Version newVersion = deploymentClient.getCurrentConfigVersion(appName);

            return !oldVersion.equals(newVersion);
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

java multithreading polling awaitility

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

Web套接字与间隔轮询

我目前正在寻找最适合处理通知的解决方案.我目前的选择是使用websockets或只是进行轮询(每分钟只有1个请求,没有长轮询,没有永久轮询)

我在某种程度上遇到了找到这些方法的性能指标的问题.结果应该能够并行处理大量用户而不需要占用太多资源.

选项A:

  • 每隔30秒发送一个请求以检查用户是否有新通知

选项B:

  • 每个用户都拥有一个websocket连接,并直接通知新通知

在后端我使用带弹簧启动的java弹簧.你知道任何最佳实践或参考实现吗?

java spring polling websocket

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