Re: event to create asynchronous task

Moritz Lenz <[email protected]> Mon, 25 Jul 2016 10:40:26 +0200
Newsgroups gmane.comp.otrs.devel
Message-ID <[email protected]>
This is an S/MIME signed message

--===============1747874996439467295==
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="sha1"; boundary="----023176B5FAE0081D1601E7FFC586FBA2"

This is an S/MIME signed message

------023176B5FAE0081D1601E7FFC586FBA2
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: quoted-printable

Hi,

On 25.07.2016 10:02, Juan Manuel Clavero Almir=F3n wrote:
> Hi all,
>=20
> =20
>=20
> I have an event module that takes too much time so the user response
> time is ridiculous. I was thinking of creating a new asynchronous task
> from the event and then run the actions on the background.
>=20
> =20
>=20
> I=92ve been reading the OTRS 5.0 dev manual : it refers to the task
> handler and shows a test module located in
> Kernel/Scheduler/TaskHandler/Test.pm, but my OTRS install doesn=92t hav=
e
> any Scheduler folder.
>=20
> =20
>=20
> The admin manual refers to the OTRS Daemon, new feature in OTRS 5, and
> I=92ve located some modules in the System folder, but I cannot find any
> document on how to create a new process for the daemon.

https://otrs.github.io/doc/manual/developer/stable/en/html/architecture-o=
verview.html#Scheduler-TaskHandler
talks about
$OTRS_HOME/Kernel/Scheduler/TaskHandler/GenericInterface.pm, but I think
the proper location is
$OTRS_HOME/Kernel/System/Daemon/DaemonModules/SchedulerTaskWorker/Generic=
Interface.pm

But I don't think you have to actually touch any of the DaemonModules,
the existing AsynchronousExecutor should do just fine.

> Can anybody refer to some guide or explain how to register a new
> asynchronous task?

Here is an example of a task that is being executed asynchronously:

https://github.com/OTRS/otrs/blob/43abbee47642a486177bb4ffe39c3677bdcaca5=
2/Kernel/System/Web/InterfaceAgent.pm#L385-L394

So one thing you could do is to write an ordinary, synchronous event
that, like the example above, calls TaskAdd with Type =3D>
'AsynchronousExecutor' on a Kernel::System::Scheduler object. And
another function which does the slow work you need to do, and then the
Scheduler executes that for you in the background.

Of course, that's all a very indirect way to approach that (but one that
works without patching OTRS itself).

I'd rather see a patch to Kernel::System::EventHandler that directly
supports asynchronous execution, so that you could get rid of a writing
a synchronous event that just triggers an asynchronous task.

Best regards,
Moritz

------023176B5FAE0081D1601E7FFC586FBA2
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"

MIIY5gYJKoZIhvcNAQcCoIIY1zCCGNMCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3
DQEHAaCCFPowggUaMIIEAqADAgECAhBtGeqnGU9qMyLmIjJ6qnHeMA0GCSqGSIb3
DQEBBQUAMIGuMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNh
bHQgTGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAf
BgNVBAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTE2MDQGA1UEAxMtVVROLVVT
RVJGaXJzdC1DbGllbnQgQXV0aGVudGljYXRpb24gYW5kIEVtYWlsMB4XDTExMDQy
ODAwMDAwMFoXDTIwMDUzMDEwNDgzOFowgZMxCzAJBgNVBAYTAkdCMRswGQYDVQQI
ExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoT
EUNPTU9ETyBDQSBMaW1pdGVkMTkwNwYDVQQDEzBDT01PRE8gQ2xpZW50IEF1dGhl
bnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0EwggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQCShIRbS1eY1F4vi6ThQMijU1hfZmXxMk73nzJ9VdB4TFW3
QpTg+SdxB8XGaaS5MsTxQBqQzCdWYn8XtXFpruUgG+TLY15gyqJB9mrho/+43x9I
bWVDjCouK2M4d9+xF6zC2oIC1tQyatRnbyATj1w1+uVUgK/YcQodNwoCUFNslR2p
EBS0mZVZEjH/CaLSTNxS297iQAFbSGjdxUq04O0kHzqvcV8H46y/FDuwJXFoPfQP
1hdYRhWBPGiLi4MPbXohV+Y0sNsyfuNK4aVScmQmkU6lkg//4LFg/RpvaFGZY40a
i6XMQpubfSJj06mg/M6ekN9EGfRcWzW6FvOnm//BAgMBAAGjggFLMIIBRzAfBgNV
HSMEGDAWgBSJgmd9xJ0mcABLtFBIfN49rgRufTAdBgNVHQ4EFgQUehNOAHRbxnhj
ZCfBL+KgW7x5xXswDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAw
EQYDVR0gBAowCDAGBgRVHSAAMFgGA1UdHwRRME8wTaBLoEmGR2h0dHA6Ly9jcmwu
dXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LUNsaWVudEF1dGhlbnRpY2F0aW9u
YW5kRW1haWwuY3JsMHQGCCsGAQUFBwEBBGgwZjA9BggrBgEFBQcwAoYxaHR0cDov
L2NydC51c2VydHJ1c3QuY29tL1VUTkFkZFRydXN0Q2xpZW50X0NBLmNydDAlBggr
BgEFBQcwAYYZaHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQUF
AAOCAQEAhda+eFdVbTN/RFL+QtUGqAEDgIr7DbL9Sr/2r0FJ9RtaxdKtG3NuPukm
fOZMmMEwKN/L+0I8oSU+CnXW0D05hmbRoZu1TZtvryhsHa/l6nRaqNqxwPF1ei+e
upN5yv7ikR5WdLL4jdPgQ3Ib7Y/9YDkgR/uLrzplSDyYPaUlv73vYOBJ5RbI6z9D
g/Dg7g3B080zX5vQvWBqszv++tTJOjwf7Zv/m0kzvkIpOYPuM2kugp1FTahp2oAb
Hj3SGl18R5mlmwhtEpmG1l1XBxunML5LSUS4kH7K0Xk467Qz+qA6XSZYnmFVGLQh
1ZnV4ENAQjC+6qXnlNKw/vN1+X9u5zCCBN0wggPFoAMCAQICEHGS++YZX6xNEoV0
cTSiGKcwDQYJKoZIhvcNAQEFBQAwezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdy
ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29t
b2RvIENBIExpbWl0ZWQxITAfBgNVBAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNl
czAeFw0wNDAxMDEwMDAwMDBaFw0yODEyMzEyMzU5NTlaMIGuMQswCQYDVQQGEwJV
UzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYDVQQK
ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNl
cnRydXN0LmNvbTE2MDQGA1UEAxMtVVROLVVTRVJGaXJzdC1DbGllbnQgQXV0aGVu
dGljYXRpb24gYW5kIEVtYWlsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAsjmFpPJ9q0E7YkY3rs3BYHW8OWX5ShpHornMSMxqmNVNNRm5pELlzkniii8e
fNIxB8dOtINknS4p1aJkxIW9hVE1eaROaJB7HHqkkqgX8pgV8pPMyaQylbsMTzC9
mKALi+VuG6JG+ni8om+rWV6lL8/K2m2qL+usobNqqrcuZzWLeeEeaYji5kbNoKXq
vgvOdjp6Dpvq/NonWz1zHyLmSGHGTPNpsaguG7bUMSAsvIKKjqQOpdeJQ/wWWq8d
cdcRWdq6hw2v+vPhwvCkxWeM1tZUOt4KpLoDd7NlyP0e03RiqhjKaJMeoYV+9Udl
y/hNVyh00jT/MLbu9mIwFIws6wIDAQABo4IBJzCCASMwHwYDVR0jBBgwFoAUoBEK
Iz6W8Qfs4q8p74Klf9AwpLQwHQYDVR0OBBYEFImCZ33EnSZwAEu0UEh83j2uBG59
MA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdJQQWMBQGCCsG
AQUFBwMCBggrBgEFBQcDBDARBgNVHSAECjAIMAYGBFUdIAAwewYDVR0fBHQwcjA4
oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2
aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZp
Y2F0ZVNlcnZpY2VzLmNybDARBglghkgBhvhCAQEEBAMCAQYwDQYJKoZIhvcNAQEF
BQADggEBAJ2Vyzy4fqUJxB6/C8LHdo45PJTGEKpPDMngq4RdiVTgZTvzbRx8Nywl
VF+WIfw3hJGdFdwUT4HPVB1rbEVgxy35l1FM+WbKPKCCjKbI8OLp1Er57D9Wyd12
jMOCAU9sAPMeGmF0BEcDqcZAV5G8ZSLFJ2dPV9tkWtmNH7qGL/QGrpxp7en0zykX
2OBKnxogL5dMUbtGB8SKN04g4wkxaMeexIud6H4RvDJoEJYRmETYKlFgTYjrdDrf
QwYyyDlWjDoRUtNBpEMD9O3vMyfbOeAUTibJ2PU54om4k123KSZB6rObroP8d3XK
6Mq1/uJlSmM+RMTQw16Hc6mYHK9/FX8wggQyMIIDGqADAgECAgEBMA0GCSqGSIb3
DQEBBQUAMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0
ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVk
MSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2VydmljZXMwHhcNMDQwMTAxMDAw
MDAwWhcNMjgxMjMxMjM1OTU5WjB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwSR3Jl
YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21v
ZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2Vz
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvkCd9G7h6naHHE1FRI6+
RsiDBp3BKv4YH47kAvrzq11QihYxC5oG0MVwIs1JLVRjzLZuaEYLU+rLTCTAvHJO
6vEVrvRUmhIKw3qyM2Di2olV8yJY897cz++DhqKMlE+faPKYkEaEJ8d2v+PMNSyL
XgdkZYLASLCokflhn3YgUKiRx2a163hiA1bwihoT6jGjHqCZ/Tj29icyWG8H9Wu4
+xQrr7eqzNZjX3OM2gWZqDioyxd4NlGs6Z70eDqNzw/ZQuKYDKsvnw4B3u+fmUnx
Ld+sdE0bmLVHxeUp0fmQGMdinL6DxyZ7Poolx8DdneY1aBAgnY/Y3tLDhJwNXugv
yQIDAQABo4HAMIG9MB0GA1UdDgQWBBSgEQojPpbxB+zirynvgqV/0DCktDAOBgNV
HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zB7BgNVHR8EdDByMDigNqA0hjJo
dHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNy
bDA2oDSgMoYwaHR0cDovL2NybC5jb21vZG8ubmV0L0FBQUNlcnRpZmljYXRlU2Vy
dmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQAIVvwC8Jvo/6T61nvGRIDOT8TF
9gBYzKa2vBRJaAR26ObuXewCD2DWjVAYTyZOAePmsKXuv7x0VEG//fwSuMdPWvSJ
YAV/YLcFSvP28cK/xLl0hrYtfWvM0vNG3S/G4GrDwzQDLH2W3VrCDqcKmcEFi6sM
L/NcOs9sN1UJh95TQGxY7/y2q2VuBPYb3DzgWhXGntnxWUgwIWUDbOzpIXPsmwOh
4DetoBUYj/q6As6nLKkQEyzU5QgmqyKXYPiQXnTUoppTvfKpaOCibsLXbLGjD56/
62jnVvKu8uMrODoJgbVrhde+Le0/GreyY+L1YiyC1GoAQVDxOYOflek2lphuMIIG
wTCCBamgAwIBAgIRAMxmCwZ/VkBEksmaCwVeekIwDQYJKoZIhvcNAQELBQAwgZsx
CzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNV
BAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMUEwPwYDVQQD
EzhDT01PRE8gU0hBLTI1NiBDbGllbnQgQXV0aGVudGljYXRpb24gYW5kIFNlY3Vy
ZSBFbWFpbCBDQTAeFw0xNjA2MDkwMDAwMDBaFw0xNzA2MDkyMzU5NTlaMIG7MRIw
EAYDVQQHDAlOw7xybmJlcmcxEjAQBgNVBAgMCU7DvHJuYmVyZzELMAkGA1UEBhMC
REUxHTAbBgNVBAMMFG1vcml0ei5sZW56QG5vcmlzLmRlMSUwIwYDVQQLExwoRS1N
YWlsIEdhdGV3YXkgQ2VydGlmaWNhdGUpMRkwFwYDVQQKExBub3JpcyBuZXR3b3Jr
IEFHMSMwIQYJKoZIhvcNAQkBFhRtb3JpdHoubGVuekBub3Jpcy5kZTCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL6GR3jYhvijrthiaN7hHaXKpQZ8D9ZB
RuCZEVCQgwDIXlWOLZZGL0wIvdAgvw0m0nvkBPDcm/5f78TLW5eftdvZ0oNPHAJS
I9xQZpfnV/u2Afh6r2HXmibulOC7i0nDyXuRMJU6Eeq4P8nz21laUZZfO24qbNoW
TKA/+0xIBeKA2hln6DbW1t/TTuW1lffSnwG3FpU/hbT4sEIH14dTnRaLRPGBYGz7
r+/iYGKFuCJbEsR5IlZrosmFz3tNqfTxtMqeLWbnNwLMGifAictzseihs+DAz66w
6NIY9I405shKf9q6OngThD6YgbQGlNY3I7nqXfpuo6wtV4Jokm09D1xRLMSo4OZ+
3kahejLeewAOI/2AGrtL+LZEC7HblPGNUBy5RD91Gqq9PyGq3+g0W/jQgTyL48bL
H1oxsNRVq33qBxxHJZZR8s3fYgbrFuFdkHsokMiBmNrg+VhEcSB4kW8C15vs1y2B
QAccUuAwSsp9KazKtF1jxBkA0FPrErIsUpiE2zGBPZerocdxV11NmqupSNJhcgfu
3+rupmXiR0g8Clw4x3VlpQNBhuKIVMRivs+TKPQJFsf1HbuYZp6a4Wz5vn0ddQN+
n1mMnRsOTEwb4vephj+qcXzHuXPgmbF5wlqxDL/udq2RcEUuFQT7+iWlHITOHHg6
8pRHR3hdKybjAgMBAAGjggHcMIIB2DAfBgNVHSMEGDAWgBSSYWuC4aKgqk/sZ/HC
o/e0gADB7DAdBgNVHQ4EFgQUCsKeB61nHspmPwnQ112bkZFZNDMwDgYDVR0PAQH/
BAQDAgWgMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwQGCCsGAQUF
BwMCMEYGA1UdIAQ/MD0wOwYMKwYBBAGyMQECAQMFMCswKQYIKwYBBQUHAgEWHWh0
dHBzOi8vc2VjdXJlLmNvbW9kby5uZXQvQ1BTMF0GA1UdHwRWMFQwUqBQoE6GTGh0
dHA6Ly9jcmwuY29tb2RvY2EuY29tL0NPTU9ET1NIQTI1NkNsaWVudEF1dGhlbnRp
Y2F0aW9uYW5kU2VjdXJlRW1haWxDQS5jcmwwgZAGCCsGAQUFBwEBBIGDMIGAMFgG
CCsGAQUFBzAChkxodHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9TSEEyNTZD
bGllbnRBdXRoZW50aWNhdGlvbmFuZFNlY3VyZUVtYWlsQ0EuY3J0MCQGCCsGAQUF
BzABhhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wHwYDVR0RBBgwFoEUbW9yaXR6
LmxlbnpAbm9yaXMuZGUwDQYJKoZIhvcNAQELBQADggEBAA3EwvRRH/QQDodD/cGf
EMG8E8A0pFP9OOovmtADMwfGpuBFv9BaB+ui3WpD8HWlyiAirC1mFZLQdsdNZ9G3
9wsquS8USWu7t4NmhsDFdiwKtzbepLiKiO0zVFt9dUJf4Dr4+Kf6ySMqKD0XcyVT
TtXlY7Pi/We3IdauBtQEHQsGTBUuTrEs8TNM0V/3YOKivYHNb6PaesIe7xGuFC1h
ckHrbRDeVN4ugDY3oT8MBZHS3le1JsHgZwhhFN8SpgeRhne+pfVCwvXMheMQ0TNQ
V33RLrVhz2y90Snt5gb2F5prbiVEqFf+NYbagSoD1E4JNokg2iBpHtWmFj54M2VI
hzIxggO0MIIDsAIBATCBsTCBmzELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0
ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RP
IENBIExpbWl0ZWQxQTA/BgNVBAMTOENPTU9ETyBTSEEtMjU2IENsaWVudCBBdXRo
ZW50aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBAhEAzGYLBn9WQESSyZoLBV56
QjAJBgUrDgMCGgUAoIHYMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZI
hvcNAQkFMQ8XDTE2MDcyNTA4NDAzMlowIwYJKoZIhvcNAQkEMRYEFB72njFUwXoz
lTNcNznp+wsbZL78MHkGCSqGSIb3DQEJDzFsMGowCwYJYIZIAWUDBAEqMAsGCWCG
SAFlAwQBFjALBglghkgBZQMEAQIwCgYIKoZIhvcNAwcwDgYIKoZIhvcNAwICAgCA
MA0GCCqGSIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMA0GCSqGSIb3
DQEBAQUABIICABb2ugKEO3SE9/S6aYnxyygmIb0zL3JDH9n+GnXzpptGhOVEkBNh
ha1EAn9N+8qpkK+V9J0YhGONZk6DGBPrhvWXRjWC7UdN/xTvngW8szoCFvW83hmH
KUlG2SY9kEdK7w5BuJ2lBJjvkdQ1AHNL258EJO+eE7+chimoKBHct0vN4FEG5YPf
zDT4mp0SaOfmpuSxYDyKV5onRyqgLKz4+qQZ/hGRQPjaQZEgv3hquMktViXquPpJ
mBXveOVK3wZhdcrgCygfAo9cbtDGBCcSZkIoZGDYawIVf1M2QxKY1NH64huIk/Wq
aMq5m0GrZyShrlRjXdNxoWjhiFHVlwWtsKlueUpsGWYv9e41y6ey8v0aFa38Bxtm
kn1sOdOTWq6PReVjS7jTjkbQAkKFfpjEkOr5wTmxELzVVPGzXq8przkWFJIAOptJ
88gWmMBiUr7htFGp6mz8un27PTlW22Hyf2MowusVLrHkHrVvxM+aKfzQXrFcJLPM
1PLh8NNd/qyojU0m4jc3EprxFfhnloIL6onHofw/TCfSyBYQs2gVcJZql5b+sk+0
CNbjuhnxqyQRq2o/XvSt1vPN6kh70Ix8tBT0zmLJcXXAoangJ93cue7ZgTpic1vv
u7nePMqHUpFMMBf36xDKreTzB/chiasx01CBoMBD7R3VrELGqmXN27hW

------023176B5FAE0081D1601E7FFC586FBA2--


--===============1747874996439467295==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
OTRS mailing list: dev - Webpage: http://otrs.org/
Archive: http://lists.otrs.org/pipermail/dev
To unsubscribe: http://lists.otrs.org/mailman/listinfo/dev
--===============1747874996439467295==--