Pause and resume using Receive Task in Activiti 7 - alfresco

We are trying to use receive task in activiti version 7.0.0SR1 to wait for callback from external system.
After receiving callback, we want to resume the paused workflow.
When I looked at activiti 7 (which unfortunately doesn;t have enough documentation compared to Activiti 6), couldn't figure out how to achive this.
There are post in Alfresco community that currently ReceiveTask doesn's support this -
https://github.com/Activiti/Activiti/issues/2152
Activity 6 uses Receive task or ReceiveTaskActivityBehavior via Spring integration route to do this.
I've couple of questions regarding this -
1) Any pointers related to the problem above greatly appreciated, also do point out if my modelling needs correction.
2) Is it too early to use Activiti 7? Should I bettre stick to Activity 6, looks better in terms of documentation and more stable as well,
my experience with resources available on v7 is not great, more inclined towards v6, any suggestions here?

To Suspend a process :
getProcessEngine(delegateExecution).getRuntimeService().suspendProcessInstanceById(delegateExecution.getProcessInstanceId());
To Resume a process :
getProcessEngine().getRuntimeService().activateProcessInstanceById(processInstanceId);
getProcessEngine().getRuntimeService().trigger(latestExecutionID, workflowVariables);

Related

How to avoid the forge model derivative queue

I want to use the forge viewer as a preview tool in my web app for generated data.
The problem I have is that the model derivative API is sometimes slow sometimes fast.
I read that this happens because the files are placed in a queue and being processed subsequentially.
In my opinion, this can be solved by:
Having the extraction.update webhook also tell me where I am in the queue. So I can inform my users with better progress information. Or when the queue is too long I can not stop the process.
Being able to have a private queue. I have no problem paying more credits if necessary.
Being able to generate svf2 files on my own server.
But I don't know if any of these options are possible. Or if there is another workaround.
Yes, that could be useful. I logged that request in our system: DERI-7940
Might be considered later on, but no plans currently
I'm not aware of any plans for that
We're always working on making the translation service better, but unfortunately, I cannot tell when it will meet your requirements - including the implementation of the webhook feature you mentioned.
SVF2 is specifically for very large models - is that what you are working with? If not, then I'm quite certain that translating to SVF would be faster.

Azure function Service bus topic trigger sleeps

I am working on Service bus topic trigger function. we have used consumption plan. It is observed that the function goes to sleep after inactivity and it does not wake up when there is new message on topic.
Function is deployed using pipeline using arm templates and we are not making any changes after deployment.
Same issue is discussed in multiple discussions.
https://github.com/Azure/Azure-Functions/issues/229
Probable solution is at below location.
https://github.com/Azure/Azure-Functions/issues/210
But not sure what needs to be done as developer here. Can someone please help in here?

Schedule a conditional email message with Akka.Net

I need to implement the following logic - I send a message to the user, and if he doesn't reply, I send it again after 12 hours.
I wonder what is the best way to do this? I was thinking about using Akka.NET - after a certain amount of time the actor would check if the user replied to my message and if not, would send it again.
Is there maybe an easier way? If not, there are some questions for Akka.NET
Do you know any good sources where I can see how this library should be used in ASP.NET Core? The documentation is not clear enough for me.
Where to keep the actors and the logic associated with them? In a separate project? Where can I create an actorSystem?
I'm new to this topic, thank you in advance for all the answers.
I theory you could just use standard actor system schedule a message order to resend an email after 12h, but this has natural problems with a fact, that if your process will crash, all of its in-memory state will be lost.
In practice you could use one of two existing plugins, which give you durable schedules:
Akka.Persistence.Reminders which works on top of Akka.Persistence, so you can use it on top of any akka.net persistence plugin.
Another way is to use Akka.Quartz.Actor which offers dedicated actors on top of Quartz.NET and makes use of Quartz's persistence capabilities.

Slow Transactions - WebTransaction taking the hit. What does this mean?

Trying to work out why some of my application servers have creeped up over 1s response times using newrelic. We're using WebApi 2.0 and MVC5.
As you can see below the bulk of the time is spent under 'WebTransaction'. The throughput figures aren't particularly high - what could be causing this, and what are the steps I can take to reduce it down?
Thanks
EDIT I added transactional tracing to this function to get some further analysis - see below:
Over 1 second waiting in System.Web.HttpApplication.BeginRequest().
Any insight into this would be appreciated.
Ok - I have now solved the issue.
Cause
One of my logging handlers which syncs it's data to cloud storage was initializing every time it was instantiated, which also involved a call to Azure table storage. As it was passed into the controller in question, every call to the API resulted in this instantiate.
It was a blocking call, so it added ~1s to every call. Once i configured this initialization to be server life-cycle wide,
Observations
As the blocking call was made at the time of the Controller being build (due to Unity resolving the dependancies at this point) New Relic reports this as
System.Web.HttpApplication.BeginRequest()
Although I would love to see this a little granular, as we can see from the transactional trace above it was in fact the 7 calls to table storage (still not quite sure why it was 7) that led me down this path.
Nice tool - my new relic subscription is starting to pay for itself.
It appears that the bulk of time is being spent in Account.NewSession. But it is difficult to say without drilling down into your data. If you need some more insight into a block of code, you may want to consider adding Custom Instrumentation
If you would like us to investigate this in more depth, please reach out to us at support.newrelic.com where we will have you account information on hand.

Scheduling Push Notifications via a Web UI

I'm digging into creating a simple web interface for scheduling iOS push notifications to occur either at a specific time or periodically in the future.
For example, someone could use this notification data:
"This is a periodic push notification!" - Every Monday - Expires Oct 31
"This will only happen once!" - Sept 20
and have the first one be executed every monday until october 31st and the second occur on september 20th.
I've done some research for some server software I could install to do this sort of thing, but I'm at a bit of a loss as to the recommended software to achieve this sort of thing. Is there ready-made software that could be recommended for scheduling push notifications?
If not, I'm also curious about software that would allow me to schedule my own tasks from input in a web form. Could I add/remove cron tasks through PHP? Or is it more appropriate to use something like Celery for this sort of thing? I guess since I haven't got much web development experience, I'm unsure of what the most appropriate approach and tools would be fore this.
You don't have to make cron task for specific events, you have to call at a define (but high) frequency a program through cron. TMHO having a program updating CRON for the purpose you describe is a bad idea.
Then this specific program has to send notifications based on the business logic you want. I implement such programs in PHP usually, then I can call them through cli or wget (this case require a bit more of work to avoid security problems since an attacker can call it too).

Resources