Сконфигурируйте долгосрочный процесс, используя Spring Application Context & lmax disruptors

У нас есть проект, который нуждается в долгосрочном процессе, чтобы проверить, был ли выполнен платеж, если это так, запись должна быть переведена на следующий уровень. Поскольку они обрабатывают огромное количество записей, мы решили использовать lmax disruptor. Какие есть варианты? что мы можем интегрировать lmax с Spring Application Context?

1 ответ

Решение
  1. Добавьте bean-компонент в Context xml и сделайте lazy-load = "false"

  2. private final ExecutorService EXECUTOR = Executors.newFixedThreadPool (1); частный разрушитель разрушитель; приватный RingBuffer ringBuffer;

    @Autowired private PaymentCompletionHandler paymentCompletionHandler; приватная строка numberOfThreads; private String queueWarnLimit;

    public void processTransaction (PaymentProcessBridge paymentProcessBridge) {long sequence = ringBuffer.next (); // Захватить следующую последовательность TransactionEvent TransactionsEvent = ringBuffer.get(sequence); transactionEvent.setPaymentProcessBridge(paymentProcessBridge); ringBuffer.publish(последовательность); }

  3. public void init () {disruptor = new Disruptor (TransactionEvent.EVENT_FACTORY, 1024, EXECUTOR, ProducerType.SINGLE, new SleepingWaitStrategy ());

    disruptor.handleEventsWith(paymentCompletionHandler);
    ringBuffer = disruptor.start();
    

    }

Другие вопросы по тегам