Example #1
0
        public PromiseTask(TInput arguments)
        {
            _creationTime = DateTime.Now.ToUniversalTime();
            _identifier   = this.GetType().Namespace + this.GetType().Name;
            _arguments    = arguments;
            var registry = TaskRegistry.TaskRegistry.Instance;

            registry.RegisterTaskIfNotExists(this.GetType());

            _promise            = _promiseClient.CreatePromise();
            _instanceIdentifier = _promise.GetCompositeKey();
        }
Example #2
0
        public void Listen(RedisPromiseClient promiseClient)
        {
            var promise = promiseClient.CreatePromise();

            _task.BindPromise(promise);
            promiseClient.Listen(promise);

            if (_onResolve != null)
            {
                promise.OnResolve = promise.OnResolve = (o =>
                {
                    string message = (string)o;
                    TResult res = JsonConvert.DeserializeObject <TResult>(message);
                    _onResolve(res);
                });
            }
            _promise = promise;
        }