[TIMOB-16960] CLI: Rearchitect to analytics to allow atomic events and only one process to send payload
GitHub Issue | n/a |
---|---|
Type | Improvement |
Priority | High |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2014-05-15T01:08:10.000+0000 |
Affected Version/s | n/a |
Fix Version/s | 2014 Sprint 10, 2014 Sprint 10 Tooling, Release 3.3.0 |
Components | CLI |
Labels | n/a |
Reporter | Chris Barber |
Assignee | Chris Barber |
Created | 2014-05-14T22:22:01.000+0000 |
Updated | 2014-06-12T23:46:47.000+0000 |
Description
Whenever an analytics event is generated, it is persisted to disk until the event has successfully been sent to the server. The problem is that all events are written to the same json file. This will cause issues when more than one analytics process is being run at the same time.
So we solve this by writing events to separate files as well as creating a pid file that only allows one process to send analytics at a time.
FYI, these changes take place in node-appc.
node-appc master pull request: https://github.com/appcelerator/node-appc/pull/89 To test, create and build an app and make sure the ~/events directory was created and that it is empty (meaning all of the events have been sent).
Tested with [~cbarber] and verified only one process is sent to payload. The events folder is empty. Environment: Mac osx 10.9.3 Mavericks Appcelerator Studio, build: 3.3.0.201406111156 Titanium SDK, build: 3.3.0.v20140611084912 Node.JS Version: v0.10.13 NPM Version: 1.3.2 acs@1.0.14 alloy@1.4.0-rc npm@1.3.2 titanium@3.3.0-rc titanium-code-processor@1.1.1