skip to Main Content

If I push a Runnable to a redisson distributed executor service, what rules am I required to oblige by?

Surely , I can not have free reign, I do not see how that is possible, yet, it is not mention in the docs at all, nor are any rules apparently enforced by the API, like R extends Serializable or similar.

If I pass this runnable:

new Runnable(()-> {
    // What can I access here, and have it be recreated in whatever server instance picks it up later for execution? 


    // newlyCreatedInstanceCreatedJustBeforeThisRunnableWasCreated.isAccissible(); // ?

    // newlyComplexInstanceSuchAsADatabaseDriverThatisAccessedHere.isAccissible(); // ?

    // transactionalHibernateEntityContainingStaticReferencesToComplexObjects....
   
    // I think you get the point. 

    // Does Redisson serialize everything within this scope? 

    // When it is recreated later, surely, I can not have access to those exact objects, unless they run on the same server, right? 

    // If the server goes does and up, or another server executes this runnable, then what happens? 

    // What rules do we have to abide by here?

})

Also, what rules do we have to abide by when pushing something to a RQueue, RBlockingDequeu, or Redisson live objects?

It is not clear from the docs.

Also, would be great if a link to a single site documentation site could be provided. The one here requires a lot of clickin and navigation:

https://github.com/redisson/redisson/wiki/Table-of-Content

2

Answers


  1. https://github.com/redisson/redisson/wiki/9.-distributed-services#933-distributed-executor-service-tasks

    You can have an access to RedisClient and taskId. Full state of task object will be serialized.

    TaskRetry setting applied to each task. If task isn’t executed after 5 minutes since the moment of start then it will requeued.

    Login or Signup to reply.
  2. I agree that the documentation is lacking some "under the hood" explanations.

    I was able to execute db reads and inserts through the Callable/runnable that was submitted to the remote ExecutorService.

    I configured a single Redis on a remote VM, the database and the app running locally on my laptop.
    The tasks were executed without any errors.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search