[ts-gen] Do I really need to tail -f ShimText?
Ken Feng
kfmfe04 at gmail.com
Mon Sep 14 10:33:47 EDT 2009
Hi Paul,
Thank you so much for your hints! I will definitely try that out.
- Ken
On 9/14/09, Paul C <paulq2o0 at yahoo.co.uk> wrote:
> On Mon, Sep 14, 2009 at 09:25:31PM +0900, Ken Feng wrote:
>>
> . . .
>> Question: If I need to know the moment that a response to an order is
>> coming from upstream, is the right approach to open a pipe to "tail -f
>> ShimText" and select() on that pipe?
>
> Hi Ken,
>
> A few notes on what I do, in case it helps:
>
> I'm not sure I'm using the 'right' approach, but I also look for the 3/3/6
> 'Filled'
> response in the shim output. However, I don't tail -f ShimText but
> instead run the shim with the 'cout' option (shim --risk cout) so
> the response is on the stdout, which in turn is connected to a
> pipe/handle (popen in ruby?). (I'm not actually using ruby, hence the
> lack of an example/code).
>
>> If there is no better approach, that is exactly what I will do - check
>> for the 3/3/6 from that pipe and try to match it up with a row in the
>> OrderStatus table so I can get better processed details about what
>> just happened.
>
> I only send one order at a time though, so I've not (yet) bothered
> trying to match up order id's with the mysql tables.
>
>
>> I can't help but feel that I'm doing something dirty/hacky by doing a
>> "tail -f ShimText" into Ruby. Someone please tell me that I am wrong
>> and show me the light (ie a better way), before I fall into the
>> dark-side... Thanks in advance.
>
> I'd agree that using the ShimText file doesn't seem right. I wonder
> if you just need that 'cout' option? - or maybe I'm missing
> something. I run the shim from within a haskell program and get
> 'handles' to the shim's stdin, stdout and stderr. I read from the
> stdout, write to the stdin, and ignore the stderr.
>
> I also use the shim's logd option (shim --risk cout logd) so that I
> can put a tail -f on the appropriate syslog file; but that's just so I
> can see what's going on. In the past I've also setup
> /etc/rsyslog.conf so that the shim's 'logd' output goes to a named
> pipe(FIFO), which I then opened as a file - rather than use the ShimText on
> the
> hard disk. Maybe that is another way forward.
>
>> I was hoping that Shim's stderr would show raw messages (like what's
>> in ShimText) while Shim's stdout would show "cooked" messages (nice
>> cooked stuff would also show up in MySQL as we see in the journal
>> tables)... ...oh, well...
>
> My approach may be too simplistic - I don't actually utilise any of
> the MySql info, or deal with multiple orders. I run two instances of
> the shim from within the downstream program: one in --data mode for
> reading prices (select tick...) and the other in --risk mode (as
> above) for sending trades. With both shim processes I parse the
> output looking for the appropriate |src|tag|_| lines.
>
> Regards
>
> Paul C
> _______________________________________________
> ts-general mailing list
> ts-general at trading-shim.org
> http://www.trading-shim.org/mailman/listinfo/ts-general
>
More information about the ts-general
mailing list