An error occurred fetching the project authors.
- 28 Oct, 2015 1 commit
-
-
Kazuhiko Shiozaki authored
-
- 19 May, 2015 2 commits
-
-
Julien Muchembled authored
-
Julien Muchembled authored
-
- 15 May, 2015 1 commit
-
-
Julien Muchembled authored
For the new GroupedMessage class in commit da234001, I renamed 'obj' to 'object' at the last minute and I missed 2 occurrences.
-
- 13 May, 2015 2 commits
-
-
Julien Muchembled authored
-
Julien Muchembled authored
The recent API change was not enough. A grouping method may need more information: in particular, the dummy grouping method must be fixed to change user.
-
- 06 May, 2015 1 commit
-
-
Julien Muchembled authored
When grouped messages fail, ActivityTool must distinguish 3 groups, in order to reexecute them separately, as follows: - first, those that succeeded - then, those that were skipped - at last, failed ones Grouping methods are updated to handle partial failures, and stop doing anything when something goes wrong. Without this, we would have the following pathological cases. 1. Let's suppose first that skipped messages are marked as succeeded. The problem is that each skipped message that will fail causes the reexecution of those that didn't fail. Exemple: A:ok B:ok C:err D:err E:err F:err 1: A:ok, B:ok, C:err, D:skipped, E:skipped, F:skipped 2: A:ok, B:ok, D:err, E:skipped, F:skipped 3: A:ok, B:ok, E:err, F:skipped 4: A:ok, B:ok, F:err 5: A:ok, B:ok -> commit And worst, the first failed (C) may be processable again before 5, entering a failing loop if it is executed again in the same group as A & B. 2. Another implementation is to mark all skipped as failed. Example: 1: A:ok, B:ok, C:err, D:skipped, E:skipped, F:skipped 2: A:ok, B:ok -> commit 3: C:err, D:skipped, E:skipped, F:skipped >3: same as 3 => D, E or F are never tried.
-
- 30 Mar, 2015 2 commits
-
-
Julien Muchembled authored
-
Julien Muchembled authored
For even more refactoring between SQLDict & SQLQueue, which now uses SQL tables with the same schema.
-
- 27 Mar, 2015 1 commit
-
-
Julien Muchembled authored
The action to recreate activity tables while preserving existing messages was unsafe for 2 reasons: - if any error happened, messages could be lost - it relied on Message.reactivate Which this patch, any instance created after commit d881edd1 (Aug 2010) will upgrade successfully. For older instances, make sure you have no activity left. For cases where 'ALTER TABLE' would not work, a better way to implement repair functionality would be: - one action to backup all messages in ZODB - and another to restore them And maybe a security so that during the backup-clear-restore sequence, activities can't be created nor processed. If any column is added in the future, it would still be possible to write code that fills them by inspecting messages.
-
- 14 Oct, 2014 1 commit
-
-
Kazuhiko Shiozaki authored
This reverts commit 6a8987fb.
-
- 08 Oct, 2014 1 commit
-
-
Kazuhiko Shiozaki authored
-
- 04 Sep, 2014 1 commit
-
-
Gabriel Monnerat authored
-
- 29 Aug, 2014 1 commit
-
-
Vincent Pelletier authored
Assumes nodes will not be named after other node's network address.
-
- 22 Aug, 2014 2 commits
-
-
Vincent Pelletier authored
-
Vincent Pelletier authored
Allows giving more compact and user-meaningful names if desired. If used, makes in-ZODB data (processing/validation roles) independent from process' network binding, removing the need to re-configure CMFActivity after changing network. Also, update AlarmTool usage of getCurrentNode (and related). Also, replace AlarmTool's manageAlarmNode input field with a select for convenience.
-
- 22 Jul, 2014 1 commit
-
-
Vincent Pelletier authored
In normal Zope usage, ZPublisher does this. TimerServer does not provide publisher with a request (which would be irrelevant anyway), so CMFActivity-managed transactions notes are empty. Notes are useful to identify the cause of an object modification, so set them in CMFActivity.
-
- 23 Jun, 2014 1 commit
-
-
Jérome Perrin authored
-
- 27 Nov, 2013 1 commit
-
-
Julien Muchembled authored
-
- 06 Aug, 2013 1 commit
-
-
Jérome Perrin authored
CMFActivity: Drop messages when document is removed but another document can be acquired with the same path. Signed-off-by: Julien Muchembled <jm@nexedi.com>
-
- 02 Aug, 2013 1 commit
-
-
Sebastien Robin authored
there was issue with edit since getActiveProcess was called and there was troubles with inexesting activity runtime environment
-
- 28 Jun, 2013 1 commit
-
-
Julien Muchembled authored
-
- 11 Jun, 2013 8 commits
-
-
Vincent Pelletier authored
For easier debugging, so we don't have to know how python mangles double-underscore properties, as introspection is reduced by __slots__ usage. Suggested by Julien Muchembled <jm@nexedi.com>
-
Vincent Pelletier authored
So that creating an ActiveWrapper (or Method) once and reusing it to spawn several activities gets a larger speed-up. Message class API is not supposed to be used outside this module, so drop failing test rather than fixing it.
-
Vincent Pelletier authored
Also, inherit from "object" as __slots__ are a new-style-class feature.
-
Vincent Pelletier authored
Also, provide one argument per line. Also, avoid shadowing "id" built-in.
-
Vincent Pelletier authored
isMessageRegistered duplicates work done in registerMessage, so it wastes time when creating an activity (in the likely event the activity is not a duplicate).
-
Vincent Pelletier authored
It is (likely) already known to caller, is only used to look up an option which is rarely enabled, and it turns out to be (relatively) expensive.
-
Vincent Pelletier authored
-
Vincent Pelletier authored
-
- 10 Jun, 2013 2 commits
-
-
Vincent Pelletier authored
Without this, __getattr__ is executed 3 times per restricted_getattr call. With, it's (still) called twice.
-
Vincent Pelletier authored
-
- 21 May, 2013 2 commits
-
-
Kazuhiko Shiozaki authored
so that we can register activity by path from restricted environment. also set default parameters just same as ActiveObject.activate().
-
Kazuhiko Shiozaki authored
so that we can call ActivityTool.activateObject() with not only by object but also by it's path. Signed-off-by: Vincent Pelletier <vincent@nexedi.com>
-
- 20 May, 2013 1 commit
-
-
Jérome Perrin authored
-
- 22 Apr, 2013 2 commits
-
-
Julien Muchembled authored
Later, we might want to do more processing after loading, or before dumping, accessing private Message data.
-
Julien Muchembled authored
When an object is deleted, higher level code used to flush its messages (without invoking them). However, a concurrent and very long transaction may be about to activate such an object, without conflict. We already experienced false -3 errors that could prevent other messages to be validated. Because there is no efficient and reliable way to flush absolutely all messages, messages on deleted objects are now ignored and deleted without any email notification. There's only a WARNING in logs. But for performance reasons, there's still a flush on object deletion. To simplify code, messages that went to -3 for other reasons, like a non-existing method, now go to -2. In fact, this was already the case for grouped messages. In case that a path is recycled, it may still be possible for a message to be executed on a wrong object (the new one), instead of being ignored (because the activated object was deleted). So in such scenario, developer should make sure not to delete an object that may be activated in a concurrent transaction. If the original object has an OID at the moment it is activated, an assertion will make sure the message is not executed on another object.
-
- 28 Dec, 2012 3 commits
-
-
Sebastien Robin authored
-
Tristan Cavelier authored
-
Tristan Cavelier authored
-