reactor-core崩溃和重启状态

时间:2018-04-13 15:01:03

标签: project-reactor camunda reactor reactive-streams

我是reactor-core的新手,过去曾经做过Erlang。

希望是一个快速的问题。

假设我们发送消息“A”,然后期望在x分钟内得到回复。如果响应没有在x分钟内完成,我们将执行回退例程。

可以使用Flux或Mono进行方法超时(持续时间,后退)

Here is the API from the rector-core site

def load_letter(folder, min_num_images):
  """Load the data for a single letter label."""
  image_files = os.listdir(folder)
  dataset = np.ndarray(shape=(len(image_files), image_size, image_size), dtype=np.float32)
  print(folder)
  num_images = 0
  for image in image_files:
    image_file = os.path.join(folder, image)
    try:
      image_data = (imageio.imread(image_file).astype(float) - pixel_depth / 2) / pixel_depth
      if image_data.shape != (image_size, image_size):
        raise Exception('Unexpected image shape: %s' % str(image_data.shape))
      dataset[num_images, :, :] = image_data
      num_images = num_images + 1
    except (IOError, ValueError) as e:
      print('Could not read:', image_file, ':', e, '- it\'s ok, skipping.')

  dataset = dataset[0:num_images, :, :]
  if num_images < min_num_images:
    raise Exception('Many fewer images than expected: %d < %d' % (num_images, min_num_images))

  print('Full dataset tensor:', dataset.shape)
  print('Mean:', np.mean(dataset))
  print('Standard deviation:', np.std(dataset))
  return dataset

如果JVM崩溃并重新启动会发生什么?

假设崩溃和重启需要几分钟。(假设y小于x)

reactor-core知道发生了崩溃吗? 可以重新启动流程的处理,知道它现在需要等待(x-y)分钟吗?

我知道Camunda将状态存储在RDBMS中。因此也许它应该从崩溃中恢复过来。

1 个答案:

答案 0 :(得分:1)

Reactor是一个旨在处理JVM边界内的实时事件的库,包括正在处理的数据的位置和生命周期。持久状态(到磁盘或任何地方)或从JVM崩溃中恢复都超出了库的范围。