e8ec59dda8f903e81cb5cceaef93d20a0812fc77 |
|
01-Jul-2016 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
982 error this iri is already being processed (#1697)
* Add expiration parameter to Semaphore
After the expiration, the semaphore is unlocked. This allows dead
processes (e.g. by kill -9) to release the lock again.
* Namespace the redis semaphore at ontohub:semaphore.
* Code style.
* Code style: use class << self block.
* Add concurrency testing gem.
* Completely revamp Semaphore
* Put it into the same redis-namespace as sidekiq.
* Add method to check if a lock is closed.
* Namespace semaphores even deeper.
Checking if a lock is closed is not an atomic operation. To make it
atomic, we put the check into a mutexed part. In order to really exclude
the locking and unlocking from this mutexed check, these two operations
must be mutexed as well with the same key (LOCK_ACTION_KEY).
Unfortunately, using many threads/processes in an example makes the test
suite hang. This is because of celluloid. Maybe we can unskip the
example after upgrading to sidekiq 4 and dropping sidetiq.
* Add settings keys for Redis.
* Use redis namespace setting for Semaphore.
* Share redis connections between Sidekiq and Semaphore
When all connections are in use, any Redis call will block until a
connection is freed.
Sidekiq is now namespaced deeper in order to prevent conflicts with the
semaphore.
* Fix locked? and perform_exclusively signatures.
* Add lock and unlock methods.
* Use separate redis namespaces for our environments.
* Use Semaphore only if not testing
* Use Semaphore when parsing an Ontology
* Remove not needed method perform_async_on_queue.
* Refactor all the Worker classes for parsing
Now, all comes down to the new OntologyParsingWorker. It performs on a
queue of triples containing the version id, options for the version and
the try_count (number of the next parsing attempt).
If parsing a version fails, it is put back to the queue (at the end),
with an incremented try_count. If this happens too often for the same
version, it is given to the SequentialOntologyParsingWorker that only
parses one OntologyVersion at a time.
The OntologyParsingPriorityWorker is a more elegant way to use the
priotitized queue.
All the background parsing is now performed via the
OntologyParsingWorker or its subclasses.
* Be explicit about the namespace.
* Obey Hound. |
6bbb71b52f053c148669e5b128e236781150da1f |
|
07-Jan-2016 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Add setting for git_ssh path. |
787127631abcd463c471486a393ec0981d3ab9b7 |
|
07-Jan-2016 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Rename symlink_path setting to git_daemon_path. |
b193b60354ad3bef7d3783b3bf676a5641362358 |
|
09-Jul-2015 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Remove git_home settings key. |
250e5c1ec05ffb6d1b933f913c3c65934b206957 |
|
27-Apr-2015 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Make Settings.paths.git_home configurable. |
e5b8591fc3e19ccd4a33757ebcabff27b4ca01ce |
|
08-Apr-2015 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Add paths settings, simplify paths initializer. |
736e78aff9e67436c35d4835c24fca667f3cadf3 |
|
10-Apr-2013 |
Julian Kornberger <juliank@tzi.de> |
rails_config and exception_notification added |