使用Alpakka Java进行无限长轮询

时间:2019-01-29 02:35:46

标签: java amazon-sqs alpakka

我正在使用以下库:https://doc.akka.io/docs/alpakka/current/sqs.html用于SQS。

我正在尝试使用它创建SQS长轮询,他们提供了一个片段来读取来自SQS的消息:

body{
    margin: 0px;
    padding: 0px;
    font-family: "Bree serif", serif;
}
#navegacion{
    width: 100%;
    padding: 0 50px;
    box-sizing: border-box;
}
.logo{
    margin: 0;
    padding: 15px 20px;
    float: left;
}
#nav-list{
    padding: 0;
    margin: 0;
    float: right;
}
#nav-list li{
    list-style: none;
    display: inline-block;
    padding: 20px 30px;
    transition: .5s;
}
#nav-list li a{
    color: black;
    text-decoration: none;
}
.nav_li:hover{
    background: rgba(0, 0, 0, 0.089);   
}
.resp-menu{
    width: 100%;
    background:#fff;
    padding: 10px 30px;
    box-sizing: border-box;
    display: none;
}
.resp-menu a{
    margin: 0;
    padding: 3px 0;
    float: left;
}
.resp-menu h4{
    margin: 0;
    padding: 5px 10px;
    color: #fff;
    float: right;
    background: yellow;
    text-transform: uppercase;
    cursor: pointer;
}
@media(max-width: 900px)
{
    #navegacion{
        display: none;
        padding: 0;
    }
    .resp-menu{
        display: block;
    }
    .logo{
        display: none;
        float: none;
    }
    #nav-list{
        float: none;
        display: block;
    }
    #nav-list li{
        display: block;
        color: black;
        text-align: center;
        padding: 15px 20px;
        border-bottom: 1px solid rgba(12, 8, 8, 0.1);
    }
    .resp-menu a{
        display: block;
    }
}
@media(min-width: 901px) {
    nav#navegacion {
      display: block !important;
    }
}

我以前在Scala中使用过Akka的RestartSource,但是在Java中,我无法使此轮询无限期。几分钟后停止。保持轮询程序存活的好方法是什么? Java中还有其他替代方法吗?

1 个答案:

答案 0 :(得分:0)

您可以通过使用RestartSource包装您的源代码来实现此目的:https://doc.akka.io/docs/akka/current/stream/stream-error.html#delayed-restarts-with-a-backoff-operator 这样,您只需要在maxRestart上传递负值即可。关于此的文档非常清楚,我只是找不到SQS和本节。