Настроить длительный процесс с помощью Spring Application Context и lmax disruptors

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


person user3183407    schedule 11.07.2016    source источник
comment
Есть ли там вопрос?   -  person m02ph3u5    schedule 11.07.2016
comment
да, я добавил вопросы .. спасибо за ответ ....   -  person user3183407    schedule 11.07.2016


Ответы (1)


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

  2. закрытый финальный ExecutorService EXECUTOR = Executors.newFixedThreadPool (1); частный Disruptor disruptor; частный RingBuffer ringBuffer;

    @Autowired private PaymentCompletionHandler paymentCompletionHandler; private String numberOfThreads; private String queueWarnLimit;

    public void processTransaction (PaymentProcessBridge paymentProcessBridge) {длинная последовательность = ringBuffer.next (); // Получение следующей последовательности TransactionEvent transactionEvent = 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();
    

    }

person user3183407    schedule 20.07.2016