Git Product home page Git Product logo

ha-jobs's People

Contributors

adelafogoros avatar bryan-riddle avatar el-dom avatar justjoheinz avatar magro avatar marcopriebe avatar migo avatar muellenborn avatar slider avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ha-jobs's Issues

Is the lock touched immediately after obtaining it?

It appears to me that the lock touching actor KeepJobLockedActor is touching the lock immediately after creation leading to a lock touch immediately after lock acquiring.

See https://github.com/Galeria-Kaufhof/ha-jobs/blob/master/ha-jobs-core/src/main/scala/de/kaufhof/hajobs/KeepJobLockedActor.scala#L23
and https://github.com/Galeria-Kaufhof/ha-jobs/blob/master/ha-jobs-core/src/main/scala/de/kaufhof/hajobs/JobExecutor.scala#L88

Is that intentional or am I not getting something?

add ui

Hi,

In EVAL we had a UI that could manage the jobs (start / stop them).. I'm not sure we used this job lib or worked directly with the streams, but if the code still exists, maybe it can be added here.

just stumbled upon this repo when looking for something similar at my new gig.

Getting started Q&A

Under the "Constraint" section, I read this: There's no need for work distribution / if a single instance can execute a job.

Please elaborate what this constraint means. :)
A (future) use-case we are looking for for a "job framework" includes work distribution to numerous "workers" or processors both via a push or a pull mechanism.

Push mechanism is something like via Spark delegation.
Pull mechanism is something like perhaps multiple client Applications taking on(locking) Jobs from the Job repo.

actor lock existing more than once

Multiple service Instances logged
actor name [_LOCK] is not unique!
One of the Instances at least got in trouble because of C*-Timeouts.
After restarting that instance the errors from the other instances disappeared, too.
akka.actor.InvalidActorNameException: actor name [AttributeModifications_LOCK] is not unique! at akka.actor.dungeon.ChildrenContainer$NormalChildrenContainer.reserve(ChildrenContainer.scala:130) ~[com.typesafe.akka.akka-actor_2.11-2.3.11.jar:na] at akka.actor.dungeon.Children$class.reserveChild(Children.scala:76) ~[com.typesafe.akka.akka-actor_2.11-2.3.11.jar:na] at akka.actor.ActorCell.reserveChild(ActorCell.scala:369) ~[com.typesafe.akka.akka-actor_2.11-2.3.11.jar:na] at akka.actor.dungeon.Children$class.makeChild(Children.scala:201) ~[com.typesafe.akka.akka-actor_2.11-2.3.11.jar:na] at akka.actor.dungeon.Children$class.actorOf(Children.scala:37) ~[com.typesafe.akka.akka-actor_2.11-2.3.11.jar:na] at akka.actor.ActorCell.actorOf(ActorCell.scala:369) ~[com.typesafe.akka.akka-actor_2.11-2.3.11.jar:na] at de.kaufhof.hajobs.JobExecutor$$anonfun$de$kaufhof$hajobs$JobExecutor$$run$1.apply(JobExecutor.scala:88) ~[de.kaufhof.ha-jobs_2.11-1.0.2.jar:1.0.2] at de.kaufhof.hajobs.JobExecutor$$anonfun$de$kaufhof$hajobs$JobExecutor$$run$1.apply(JobExecutor.scala:80) ~[de.kaufhof.ha-jobs_2.11-1.0.2.jar:1.0.2]

LockRepository.getAll should log when LockType could not be resolved

This is important when the JobSupervisor/JobUpdater checks if there are jobs running without a matching lock. If the LockRepository.getAll does not return a lock because it could not resolved (was not supplied by LockTypes), a running job gets canceled and nothing in the logs tells you why this happened.

self in callback

Sending a closure over self to a child to be notified upon 'touch-failure' is nice

val lockKeeper = context.actorOf(
        KeepJobLockedActor.props(lockRepo, job.jobType, jobId, job.lockTimeout, () => self ! LostLock(jobContext)),
        job.jobType.name + "_LOCK")

(ha-jobs-core/src/main/scala/de/kaufhof/hajobs/JobExecutor.scala)

I would not have thought that it is ok to do that, but now it seems pretty clear. Thanks!

Support job dependencies

It would be great if there were dependencies between jobs, so that a Job 'B' can be started after Job 'A' was finished.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.