[Twisted-Python] So how does everyone use an ORM in twisted?
coder_gus
coder_gus at lavabit.com
Mon Mar 23 14:48:14 MDT 2009
So, basically what you say is that if I do something like:
def dataReceived(self, data):
reactor.callInThread(f, data)
and later you have:
def getData():
data = orm_session.query(Object).filter(data).all()
return data # eagerloaded, lazyloaded and put in any format you like
reactor.callFromThread(getData)
at the time of the query or when lazy-loading an attribute the reactor
would block?
And if so, why is that? I do not know the internals of the reactor nor
the ones of the ORM and I am interested why something like this won't work.
Thanks.
P.S: Sorry for the vaguely python pseudo-code, hope you got the idea.
Jean-Paul Calderone wrote:
> On Tue, 17 Mar 2009 11:05:59 -0400, Ryan Lepidi <ryeguy1 at gmail.com>
> wrote:
>> I have searched a bit, and it seems as though you can't use SQL
>> Alchemy with
>> twisted due to SA being thread unsafe. The only solution I found was
>> sAsync,
>> but this is old and unmaintained. What is everyone else doing for
>> database
>> access for a multiuser server? Is everyone really using raw sql
>> queries or
>> is there some easy solution that I'm missing?
>>
>> I'm not even stuck on SQL Alchemy; if there is some other ORM that
>> works in
>> this case, I'd be willing to learn it.
>>
>
> I use Axiom (for Mantissa, a somewhat general-purpose application server,
> for Quotient, a mail server based on it, for Imaginary, a text adventure
> server based on it, for Blendix, a person aggregator based on it, for
> Merit, a test results database, etc) most of the time. I know some other
> people are using Storm.
>
> Overall, I think that the way all existing ORMs work (including Axiom and
> Storm) is hostile towards the typical Twisted program structure (or vice
> versa, or both). So it's tough. The approach Axiom takes is to warn you
> that any database operation you perform must complete quickly or your app
> will suffer, and to restrict you to SQLite, so network issues can't hurt
> you.
>
> Jean-Paul
>
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
>
> ____________________________________________________________________________________
>
> Be a professional. Click here to earn a psychology degree.
> http://ads.lavabit.com/fc/BLSrjwr2XUejFQl52llZu1OHc75Kvdk24AO6XmzlqNlFiwPiYRenCdFpDfK/
>
> ____________________________________________________________________________________
>
More information about the Twisted-Python
mailing list