[ 
https://issues.apache.org/jira/browse/ISIS-661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13887617#comment-13887617
 ] 

ASF subversion and git services commented on ISIS-661:
------------------------------------------------------

Commit 49c7c05dd57be56f6d272329c3a4693a996d8a09 in branch refs/heads/master 
from [~danhaywood]
[ https://git-wip-us.apache.org/repos/asf?p=isis.git;h=49c7c05 ]

ISIS-657,ISIS-660,ISIS-661,ISIS-662,ISIS-663,ISIS-667,ISIS-668,ISIS-670: JDO 
services

ISIS-657:
- appsettings / usersettings entities also now use "Isis" as prefix to table 
names

ISIS-660:
- renamed InteractionFactory to InteractionService
- renamed InteractionRepository to InteractionServiceJdoRepository
- InteractionDefault and InteractionJdo now have a next() method, to create 
sequences of numbers
  (as used to generate the PKs for PublishedEventJdo and BackgroundTaskJdo, see 
below)
- Interaction#startedAt renamed to Interaction#timestamp (and #startedAt now a 
derived property)
- Interaction now defines a #transactionId property
- IsisTransaction now picks up its transactionId from passed-in Interaction 
object (if available)
  - and defers to Interaction for generation of next pub/sub event sequence if 
it can (else previous behaviour)
- IsisTransaction#guidId renamed to #transactionId


ISIS-661: (background service mementos, background task service)
- renamed BackgroundTaskContributions to BackgroundTaskServiceJdoContributions
- renamed BackgroundTaskRepository to BackgroundTaskServiceJdoRepository

ISIS-662: published events contributions
- renamed PublishedEventRepository to PublishingServiceJdoRepository
- renamed PublishedEventContributions to PublishingServiceJdoContributions


ISIS-663: audit entry contributions
- rename AuditEntryCountributions to AuditingServiceJdoContributions
- rename AuditEntryRepository to AuditingServiceJdoRepository

ISIS-667:
- added JdoColumnLength as central location for standard column lengths of JDO 
entities
- renamed AuditEntry to AuditEntryJdo
- renamed PublishedEvent to PublishedEventJdo
- changed PK for PublishedEventJdo entity to be application-defined: 
(transactionId,sequence)
- change to datatype of some PublishedEventJDO entities
- changed PK for BackgroundTaskJdo entity to be application-defined: 
(transactionId,sequence)
- factored out Util class for JDO entities
- renamed UserSettingPrimaryKey to UserSettingJdoPK

ISIS-668:
- improvements to ServicesInstallerFromConfiguration
- improved formatting of isis.properties in the todo app & simple app

ISIS-670:
- removed AuditingService, AuditingService2 APIs
- introduced replacement AuditingService3 API


> BackgroundService and BackgroundTaskService as a way of creating mementos to 
> execute jobs asynchronously
> --------------------------------------------------------------------------------------------------------
>
>                 Key: ISIS-661
>                 URL: https://issues.apache.org/jira/browse/ISIS-661
>             Project: Isis
>          Issue Type: New Feature
>          Components: Core, Objectstore: JDO
>    Affects Versions: objectstore-jdo-1.3.0, core-1.3.0
>            Reporter: Dan Haywood
>            Assignee: Dan Haywood
>             Fix For: objectstore-jdo-1.4.0, core-1.4.0
>
>
> BackgroundService is the service that creates the mementos, with a default 
> implementation in isis-core.
> usage:
> public void submitInvoices() {
>      for(Customer customer: customerRepository.findCustomersToInvoice()) {
>          backgroundService.execute(customer).submitInvoice();
>      }
>  }
>  
>  @javax.inject.Inject
>  private BackgroundService backgroundService;
> Here the service creates a javassist proxy through which it can figure out 
> the arguments.  The MementoService and BookmarkService can be used to create 
> the memento string (XML).
> ~~~~~~~~~~~~~
> BackgroundTaskService is the service that persists the mementos, with a 
> default implementation in objectstore-jdo.  Each persisted BackgroundTask 
> should be associated with the transactionId of the Interaction (see ISIS-660).
> ~~~~
> also:
> - require separate "contributions" service to add in the BackgroundTask 
> collection to the Interaction.
> ~~~~
> NB: the docs should indicate that an alternative implementation for 
> BackgroundTaskService could be webhooks.  Per Maurizio's comment:
> a web hook is basically an HTTP callback
> An example of web hook is available on the Google infrastructure, where task 
> longer than 30 sec. are not allowed. 
> This is similar to your idea of background service:
> public void calculateInvoices() {
>      for(Customer customer: customerRepository.findCustomersToInvoice()) {
>          Queue queue = QueueFactory.getDefaultQueue();
>          queue.add(withUrl("/worker").param("id", customer.getId()));     
>      }
>  }
> Tasks added to the queue will execute by calling the request handler at the 
> URL /worker with the parameter id at a given task rate.
> https://developers.google.com/appengine/docs/java/taskqueue/overview-push 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to