标签: stateful

是否可以在C#中创建有状态的Web服务?

我现在有这样的事情:

public class Service1 : System.Web.Services.WebService
{
    [WebMethod]
    public string Method1()
    {
        SomeObj so = SomeClass.GetSomeObj(); //this executes very long time, 50s and more
        return so.Method1(); //this exetus in a moment 
    }

    [WebMethod]
    public string Method2()
    {
        SomeObj so = SomeClass.GetSomeObj(); //this executes very long time, 50s and more
        return so.Method2(); //this exetus in a moment 
    }

 ...
}
Run Code Online (Sandbox Code Playgroud)

有可能创建有状态的Web服务,以便我可以重用SomeObj so并只调用同一对象上的方法吗?

因此,将使用此服务的客户端将首先调用web方法,该方法将创建so对象并返回一些ID.然后在后续调用中,Web服务将so基于ID 重用相同的对象.

编辑


这是我的实际代码:

[WebMethod]
public List<ProcInfo> GetProcessList(string domain, string machineName)
{
    string …
Run Code Online (Sandbox Code Playgroud)

c# persistence web-services stateful object-persistence

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

JSF 2.0应用程序的水平扩展

鉴于JavaServer Faces在服务器端本质上是有状态的,建议使用哪些方法来横向扩展JSF 2.0应用程序?

如果应用程序运行多个JSF服务器,我可以想象以下场景:

  1. 粘滞会话:将与给定会话匹配的所有请求发送到同一服务器.
    • 问题:通常使用什么技术来实现这一目标?
    • 问题:服务器故障导致会话丢失......并且通常看起来像脆弱的架构,尤其是在重新开始时(不尝试扩展现有应用程序)
  2. 状态(会话)复制:在群集中的所有JSF服务器上复制JSF状态
    • 问题:通常使用什么技术来实现这一目标?
    • 问题:没有扩展.cluster的总内存=最小服务器上的总内存
  3. 指示JSF(通过配置)将其状态存储在外部资源(例如运行内存非常快的数据库的另一台服务器)上,然后在需要应用程序状态时从JSF服务器访问该资源?
    • 问题:这可能吗?
  4. 指示JSF(通过配置)是无状态的?
    • 问题:这可能吗?

[编辑]

更新以回应Ravi对Sticky Sessions的建议

stateful cluster-computing web-architecture horizontal-scaling jsf-2

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

extjs有状态网格删除排序

我有状态网格的问题.我不想保存排序状态,但我想保存所有其他选项(列位置,列宽,分组等)

现在我已经尝试使用stateEvents选项,但是当偶数触发时它会保存整个网格状态.

是否有任何选项可以排除保存排序状态?

网格配置的一部分:

this.gridPanel = new Ext.grid.GridPanel({
                id:'grid'+this.id,
                region:region,
                layout:'fit',
                stateful:true,
                stateEvents: ['columnmove', 'columnresize', 'groupchange', 'bodyresize'],
                loadMask:true,
                split:true,
                store: this.stores['root'+this.id],
                cm: this.getRootColumnModel(),
                sm: this.getRootSelectionModel(),
Run Code Online (Sandbox Code Playgroud)

gridview extjs stateful

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

如何将自定义分配器的完全相同状态传递给多个容器?

我正在编写一个分配器,其中引用了某个类的另一个实例,该实例跟踪分配的字节数。

下面是我正在尝试做的事情的一个最小示例(从这里改编),只是没有整个内存跟踪类,而是我引用了一些 int 来收集到目前为止分配的字节。这个引用在 main 内部分配,应该传递给 CustomAllocator:

#include <limits>   // numeric_limits
#include <iostream>
#include <typeinfo> // typeid

// container
#include <vector>
#include <list>
#include <forward_list>

template<typename T>
class CustomAllocator {
public:
    // type definitions
    typedef T value_type; /** Element type */
    typedef T* pointer; /** Pointer to element */
    typedef T& reference; /** Reference to element */
    typedef const T* const_pointer; /** Pointer to constant element */
    typedef const T& const_reference; /** Reference to constant element */
    typedef …
Run Code Online (Sandbox Code Playgroud)

c++ stateful allocator c++11

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

Flutter 有状态小部件状态未初始化

我正在使用 Flutter 制作一个命令和控制应用程序,但遇到了一个奇怪的问题。该应用程序的主状态页面显示了一个有状态小部件列表,每个小部件都拥有一个 WebSocket 连接,该连接从连接的机器人平台流式传输状态数据。当机器人本身被硬编码时,这很有效。但是现在我正在动态添加它们(通过条形码扫描),只有第一个小部件显示状态。

使用调试器的进一步调查表明,这是因为仅为列表中的第一个小部件创建了状态。随后添加的窗口小部件越来越成功构建,但没有得到一个状态。这意味着除了添加的第一个小部件之外,不会调用 createState 。我检查了小部件本身是否确实被添加到列表中,并且它们每个都有唯一的哈希码。此外,IOWebSocketChannel 具有唯一的哈希码,并且所有小部件数据对于列表中的不同元素都是正确且唯一的。

关于可能导致此问题的任何想法?

HomePageState 的代码:

class HomePageState extends State<HomePage> {
  String submittedString = "";
  StateContainerState container;
  List<RobotSummary> robotList = [];
  List<String> robotIps = [];
  final GlobalKey<ScaffoldState> scaffoldKey = new GlobalKey<ScaffoldState>();

  void addRobotToList(String ipAddress) {
    var channel = new IOWebSocketChannel.connect('ws://' + container.slsData.slsIpAddress + ':' + container.slsData.wsPort);
    channel.sink.add("http://" + ipAddress);
    var newConnection = new RobotSummary(key: new UniqueKey(), channel: channel, ipAddress: ipAddress, state: -1, fullAddress: 'http://' + container.slsData.slsIpAddress + ':' + container.slsData.wsPort,); …
Run Code Online (Sandbox Code Playgroud)

stateful init flutter

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

使用 kafka 检测值的变化

我有一个流应用程序,它不断接收坐标流以及一些还包括位串的自定义元数据。该流使用生产者 API 生成到 kafka 主题上。现在另一个应用程序需要处理此流 [Streams API] 并存储位字符串中的特定位,并在此位更改时生成警报

下面是需要处理的连续消息流

{"device_id":"1","status_bit":"0"}
{"device_id":"2","status_bit":"1"}
{"device_id":"1","status_bit":"0"}
{"device_id":"3","status_bit":"1"}
{"device_id":"1","status_bit":"1"} // need to generate alert with change: 0->1
{"device_id":"3","status_bits":"1"}
{"device_id":"2","status_bit":"1"}
{"device_id":"3","status_bits":"0"} // need to generate alert with change 1->0
Run Code Online (Sandbox Code Playgroud)

现在我想将这些警报写入另一个 kafka 主题,例如

{"device_id":1,"init":0,"final":1,"timestamp":"somets"}
{"device_id":3,"init":1,"final":0,"timestamp":"somets"}
Run Code Online (Sandbox Code Playgroud)

我可以使用类似的东西在状态存储中保存当前位

streamsBuilder
        .stream("my-topic")
        .mapValues((key, value) -> value.getStatusBit())
        .groupByKey()
        .windowedBy(TimeWindows.of(Duration.ofMinutes(1)))
        .reduce((oldAggValue, newMessageValue) -> newMessageValue, Materialized.as("bit-temp-store"));
Run Code Online (Sandbox Code Playgroud)

但我无法理解如何从现有位中检测到这种变化。我是否需要在处理器拓扑内部以某种方式查询状态存储?如果是?如何?如果不?还能做什么?

我可以尝试的任何建议/想法(可能与我的想法完全不同)也受到赞赏。我是 Kafka 的新手,我无法从事件驱动流的角度思考。

提前致谢。

stateful apache-kafka apache-kafka-streams

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

如何使用有状态 LSTM 模型进行预测而不指定与训练时相同的 batch_size?

我尝试设置 stateful=True 来训练我的 LSTM 模型并且它起作用了。

但是我必须将我的输入重塑为我为第一层设置的相同 batch_size,这对于有状态 RNN 来说是必须的,否则我会得到一个错误:InvalidArgumentError: Invalid input_h shape。

我将batch_size设置为64,但我只想输入一个起始句来生成文本。如果一定要提供batch_size=64的input,就需要准备64个句子,太可笑了。

如果我没有设置 stateful=True,它运行良好,但我需要提高性能。在这种情况下,如何在不匹配我设置的 batch_size 的情况下使用有状态 LSTM 模型?

我定义的模型

seq_length = 100
batch_size = 64
epochs = 3

vocab_size = len(vocab) # 65
embedding_dim = 256
rnn_units = 1024

def bi_lstm(vocab_size, embedding_dim, batch_size, rnn_units):
  model = keras.models.Sequential([
      keras.layers.Embedding(vocab_size, embedding_dim,
                  batch_input_shape = (batch_size, None)),
      keras.layers.Bidirectional(
          keras.layers.LSTM(units = rnn_units, 
                  return_sequences = True,
                  stateful = True,
                  recurrent_initializer = "glorot_uniform"
      )),
      keras.layers.Dense(vocab_size),
  ])
  return model
Run Code Online (Sandbox Code Playgroud)

我做了一个这样的简单测试,它显示了我的错误。

for x, y in seq_dataset.take(1):
  x = …
Run Code Online (Sandbox Code Playgroud)

stateful lstm keras

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

Nifi 1.10.0-使用新的Stateless NiFi执行引擎和命令行

在此输入图像描述

有了这个功能,现在有两个执行引擎——STATELESS和STATEFUL,但我不确定它们分别适合哪些场景?当我想方便地更新一个或多个参数时,使用steteless执行引擎和命令行吗?如果我需要查看流的状态,使用Nifi UI中的有状态执行引擎吗?

感谢任何帮助!

stateful stateless apache-nifi

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

如何在 Keras 中使用“有状态”变量/张量创建自定义层?

我想请您帮助创建我的自定义图层。我想做的实际上非常简单:生成一个带有“状态”变量的输出层,即其值在每个批次中更新的张量。

为了使一切更清楚,以下是我想做的事情的片段:

def call(self, inputs)

   c = self.constant
   m = self.extra_constant

   update = inputs*m + c 
   X_new = self.X_old + update 

   outputs = X_new

   self.X_old = X_new   

   return outputs
Run Code Online (Sandbox Code Playgroud)

这里的想法很简单:

  • X_old中初始化为0def__ init__(self, ...)
  • update被计算为层输入的函数
  • 计算该层的输出(即X_new
  • 的值X_old设置为等于X_new,以便在下一批中X_old不再等于零,而是等于X_new前一批。

我发现它K.update可以完成这项工作,如示例所示:

 X_new = K.update(self.X_old, self.X_old + update)
Run Code Online (Sandbox Code Playgroud)

这里的问题是,如果我尝试将层的输出定义为:

outputs = X_new

return outputs
Run Code Online (Sandbox Code Playgroud)

当我尝试 model.fit() 时,我会收到以下错误:

ValueError: An operation has `None` for gradient. Please make sure that all of …
Run Code Online (Sandbox Code Playgroud)

stateful layer keras tensorflow recurrent-neural-network

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

Flutter/Dart:将参数传递给有状态小部件?

我需要调用将我的titleoldtitle参数传递给我的EditPageStateful 小部件。但如果我这样做;

 class EditPage extends StatefulWidget {
   String title;  
   String oldtitle;
   EditPage({this.title, this.oldtitle})
Run Code Online (Sandbox Code Playgroud)

这些字符串不可用于构建,除非我将其称为 widget.titlewidget.oldtitle

但我正在使用一个textfield表单,如果我使用这些小部件,它似乎无法正常工作。

这是表单代码:

      Container(                   
                child: TextField(
                    decoration: new InputDecoration(
                    hintText: widget.oldtitle,
                    contentPadding: new EdgeInsets.all(1.0),
                    border: InputBorder.none,
                    filled: true,
                    fillColor: Colors.grey[300],
                  ),
                  keyboardType: TextInputType.text,
                  autocorrect: false,
                  onChanged: (titleText) {
                    setState(() {
                       widget.title= titleText;
                    });
                  },
                ),
              ),
Run Code Online (Sandbox Code Playgroud)

但如果我这样做;

class _EditPageState extends State<EditPage> {
   String title;  
   String oldtitle;  
   EditPage({this.title, this.oldtitle})
Run Code Online (Sandbox Code Playgroud)

我无法从另一个屏幕将标题参数传递给它。IE:

`EditPage(title:mytitle, oldtitle:myoldtitle);`
Run Code Online (Sandbox Code Playgroud)

那么将参数传递给 Stateful widget 的正确方法是什么?

widget stateful parameter-passing dart flutter

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