标签: stateful

有状态尾(仅显示上次执行的新行)

我希望能够看到自上次查询以来没有再次读取整个文件的文件中添加了多少行.

就像是 :

ptail my_file | fgrep "[ERROR]" | wc -l 
Run Code Online (Sandbox Code Playgroud)

简单的Perl解决方案是首选,因为我没有轻松访问编译器.

perl stateful tail persistent

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

JAX-WS:有状态WS在独立进程中失败

我有一个部署在Tomcat上的有状态Web服务.它由工厂服务和主要的API服务组成,工作得很好.工厂服务将W3CEndpointReference返回到主API实例,客户端使用该会话.

现在,我正在尝试运行与独立应用程序相同的服务.在这种情况下,工厂返回的W3CEndpointReference突然开始指向工厂URI,而不是主服务URI.

当比较针对Tomcat和standalone的运行引用时,很明显独立引用具有错误的URI.具体来说,它指向工厂URI,而不是主API.

这是正确的参考:

...
<ns3:Address>http://localhost:8080/td2ws/api</ns3:Address> 
...
Run Code Online (Sandbox Code Playgroud)

这是在独立进程上调用工厂时的引用:

<Address>http://localhost:9009/td2ws/factory</Address>
Run Code Online (Sandbox Code Playgroud)

我理解servlet上下文中的一些代码知道服务类(Td2Ws)和它的URI之间的对应关系,并相应地调整引用.但是,这段代码在独立进程中不起作用.我甚至可以怀疑代码使用sun-jaxws.xml,但我不知道如何"打开它".

如何在独立应用程序工作中创建有状态Web服务?

以下是代码的相关部分:

工厂服务(无国籍):

@WebService(targetNamespace="http://server.td2ws.sf.net/") 
public class Td2WsFactory {
    @WebMethod(operationName="StartSession", action="urn:StartSession")
    @WebResult(name="Reference")
    public W3CEndpointReference startSession() {
        StatefulWebServiceManager<Td2Ws> manager = Td2Ws.getManager();

        // for standalone execution only
        if( manager == null ) {
            manager = new StatefulInstanceResolver<Td2Ws>(Td2Ws.class);
            Td2Ws.setManager(manager);
        }

        Td2Ws session = new Td2Ws();
        return manager.export(W3CEndpointReference.class,session);
    }
}
Run Code Online (Sandbox Code Playgroud)

有状态API:

@Stateful
@WebService(targetNamespace="http://server.td2ws.sf.net/") 
@Addressing
public class Td2Ws {
    private static StatefulWebServiceManager<Td2Ws> manager;

    public static void setManager(StatefulWebServiceManager<Td2Ws> manager ) {
        Td2Ws.manager = manager;
    }

    public static …
Run Code Online (Sandbox Code Playgroud)

java web-services stateful jax-ws

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

为什么我不应该将JSF SessionScoped bean用于逻辑?

我正在使用带有购物车样式流程的JSF开发一个java EE Web应用程序,所以我想在多个页面上收集用户输入,然后用它做一些事情.

我正在考虑使用EJB 3有状态会话bean,但是我的研究让我相信SFSB并不依赖于客户端的http会话,因此我必须通过httpSession手动跟踪它,一些方面的问题这里 ...

1)为什么它被称为会话bean,据我所知它与会话无关,我可以通过在会话中存储pojo来实现同样的目的.

2)能够注射它的重点是什么,如果所有我要注射'是这个SFSB的新实例那么我不妨使用pojo?

回到我看到的主要问题,JSF是一种演示技术,所以它不应该用于逻辑,但它似乎是收集用户输入的完美选择.

我可以将JSF会话作用域bean设置为我所有请求bean的托管属性,这意味着它被注入到它们中,但与SFSB不同,JSF托管会话作用域bean与http会话绑定,因此相同的实例始终被注入只要http会话没有失效.

所以我有多层

第1层)JSF托管请求范围的bean处理演示文稿,每页1个.
第二层)一个JSF托管会话范围的bean,它由请求bean设置了值.
第3层)无状态会话EJB,它对JSF会话范围bean中的数据执行逻辑.

为什么这么糟糕?

另一种选择是使用SFSB但是我必须将它注入我的初始请求bean中,然后将其存储在http会话中并在每个后续请求bean中将其抓回 - 这看起来很麻烦.

或者我可以将所有内容存储在会话中,但这并不理想,因为它涉及使用文字键和强制转换.等等.这容易出错...凌乱!

任何想法都赞赏我觉得我正在与这项技术作斗争,而不是与之合作.

谢谢

jsf ejb stateful java-ee stateful-session-bean

5
推荐指数
2
解决办法
4213
查看次数

在程序运行之间保持变量值

我有一个简单的c#控制台应用程序,每隔5分钟安排一次.每次调用程序都需要上次运行的输出.

我现在正在做的是使用文本文件并将结果存储在其中.下次运行时,它会打开文本文件并知道上一次运行的输出.

有没有其他方法可以做到不需要任何这样的文本文件?喜欢维护会话变量等?

.net c# stateful windows-applications

5
推荐指数
2
解决办法
3569
查看次数

iptables -j与-g参数

从发行版的手册页中,我对下面的粗体部分特别感兴趣。

-j,-跳转目标

这指定了规则的目标;即,如果数据包匹配,该怎么办。目标可以是用户定义的链(此规则所在的链除外),可以立即确定数据包命运的特殊内置目标之一,也可以是扩展(请参见下面的“扩展”)。如果在规则中省略了此选项(并且未使用-g),则匹配规则将不会影响数据包的命运,但是规则上的计数器将增加。

-g,--goto链

这指定处理应按用户指定的链继续进行。与--jump选项不同,return不会在此链中继续处理,而是在通过--jump调用我们的链中继续处理。

我担心我误会了-g实际的情况。

-g现在到底有-j什么不同?

linux firewall iptables stateful

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

ORM用于有状态的应用程序.EF适合吗?还是任何?

我需要一个适合有状态应用的ORM.我将在具有持久客户端连接的低延迟实时游戏服务器中的请求之间保留实体.只有一个服务器实例连接到数据库,因此无法从"外部"更改数据,服务器可以依赖其缓存.

当用户远程登录服务器时,其整个配置文件将加载到服务器内存中.还为每个用户创建了几个更高级别的服务,以操作配置文件数据并提供功能.它们还可以具有内部字段(状态)来存储临时数据.当用户想要改变他的签名时,他要求相应的服务这样做.该服务跟踪用户更改其签名的频率,并且每十分钟仅允许一次(例如) - 在db中不跟踪这样的短间隔,这是临时状态.此更改应存储到仅执行1个查询的db : UPDATE users SET signature = ... WHERE user_id = .... 当用户注销时,它会在几分钟/小时不活动后从服务器内存中卸载.这里的Db只是一个存储空间.这就是我称之为有状态的.

  1. 某些实体被视为"静态数据",仅在应用程序启动时加载一次.那些可以从其他"动态"实体引用.加载"动态"实体不应要求重新加载引用的"静态数据"实体.
  2. Update/ Insert/ Delete应该设置/插入/偶与"抽离"实体只删除更改的属性/实体.
  3. 写操作不应每次都从数据库(执行Select)初步加载数据以检测更改.(可以在动态生成的继承器中跟踪状态.)我在本地有一个状态,没有意义加载任何东西.我希望在连接范围之外继续跟踪更改,并在需要时"上传"更改.
  4. 执行操作时,不应更改持久对象的引用.
  5. 每个用户的DBConnection不起作用.预期的在线数千名用户.
  6. 来自"静态数据"的实体可以分配给"动态"enitity属性(表示外键)并且Update应该正确处理它.

现在我正在使用NHibernate,尽管它是为无状态应用程序设计的.它支持重新连接到会话,但看起来非常罕见的使用,要求我使用未记录的行为,并不解决所有问题.

我不确定实体框架 - 我可以这样使用它吗?或者你能建议另一个ORM吗?

如果服务器每次用户按下按钮时都会重新创建(或特别是重新加载)用户对象,那么它将非常快地占用CPU.CPU垂直扩展成本很高但效果很小.相反,如果你没有RAM,你可以去买更多 - 比如水平缩放,但更容易编码.如果你认为应该在这里使用另一种方法,我准备讨论它.

c# nhibernate orm entity-framework stateful

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

HTTP / 2的哪些部分是有状态的?

与无状态HTTP / 1.0不同,HTTP / 2具有状态组件。

这些部分显示为有状态:

这部分似乎是无状态的:

  • 应用层

HTTP / 2是否还有其他部分是有状态的?

stateful http2

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

演员模型不是反模式吗,因为“一劳永逸”的风格迫使演员记住一种状态吗?

在学习Scala时,我学到的第一件事就是每个函数都返回一些东西。没有像Java中那样的“无效”函数/方法。因此,许多Scala函数在数学上都是真正的函数,并且对象在很大程度上可以保持无状态。

现在,我了解到actor模型是Scala等功能语言中非常流行的模型。但是,参与者促进了编程的“一劳永逸”风格,并且呼叫者通常不希望被呼叫者直接回复消息(使用“询问” /“?”方法时除外)。因此,参与者需要记住某种状态。

我是否假设角色模型更像是可伸缩性和可维护性之间的权衡(由于其状态),有时甚至可以认为是反模式?

scala anti-patterns stateful actor akka

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

在相同的流数据上触发结构化的流式传输多个聚合密钥

我是Spark的新手,我有一个基于Spark结构化流的原型应用程序,其中不断从Kafka读取流数据。

在此流数据上,可以说我必须应用多个聚合:

1)按key1分组并生成和和计数
2)按key1和key2分组并生成计数等...

如果我将上述2个聚合创建为流查询,则会创建两个独立的流查询,每个独立地从kafka读取,这不是我想要的。从kafka缓存数据然后执行多次聚合在结构化流中似乎不起作用。

对流数据进行多重聚合的最佳方法是什么?

一些帖子建议flatmapwithGroupState可能适用于这种用例,但我找不到相同的任何示例

stateful spark-structured-streaming

5
推荐指数
0
解决办法
326
查看次数

有状态和无状态的流方法

在界面Stream中:

中间操作可分为有状态和无状态.它们会影响并行Stream的结果.

只有两个终端操作是非确定性方法:findAny()和forEach(Consumer).它们会影响并行Stream的结果.

中间操作可分类为:

有状态

  • 不同()
  • 排序()
  • 限制(长l)
  • 跳过(长l)

无状态

  • 地图(功能f)
  • flatMap(功能f)
  • 过滤器(谓词p)
  • 偷看(消费者c)

这是我的两个问题:

  1. 如果我在并行流上调用无状态中间方法,我将获得顺序流的相同结果,但顺序不同.如果我在并行流上调用有状态中间方法,我将获得顺序流的相同结果.这些规则是基本的,但这些规则如何在存在非确定性终端方法的情况下发生变化?并存在副作用(对于无状态方法)?

  2. Stream元素的顺序是"遇到顺序",除非我调用BaseStream方法:unordered().元素的顺序是否会影响流的结果(存在有状态或无状态方法)?如果有,怎么样?

非常感谢!

一个.

java side-effects stateful stateless java-stream

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