Är Telldus APIet trådsäkert?
Moderator: Telldus
Är Telldus APIet trådsäkert?
Kan jag kalla på flera tdTurnOn samtidigt? Kommer anropen att köas då? Om inte, hur länge måste man vänta mellan varje anrop?
Tack på förhand!
Tack på förhand!
-
- Site Admin
- Posts: 2243
- Joined: Fri Mar 17, 2023 9:45 am
- Location: Lund
- Contact:
Re: Är Telldus APIet trådsäkert?
Vårt api består av två delar (fr.o.m. version 2.1). En service och ett klientbibliotek. Servicen garanterar vi tråd- och processäkerhet eftersom flera applikationer ska kunna använda APIt samtidigt.
Vi garanterar inte trådsäkerhet i klientbiblioteket utan det bör du lösa själv i ditt program. En snabb koll på koden så delar dock inte två tdTurnOn() anrop samma resurser så det bör inte vara några problem att ha två anrop samtidigt.
Om du köar upp för många anrop på en gång och anropen tar tid kan du istället få problem med timeout.
Ang. väntan så kan du direkt börja med nästa anrop när första returnerar.
Vi garanterar inte trådsäkerhet i klientbiblioteket utan det bör du lösa själv i ditt program. En snabb koll på koden så delar dock inte två tdTurnOn() anrop samma resurser så det bör inte vara några problem att ha två anrop samtidigt.
Om du köar upp för många anrop på en gång och anropen tar tid kan du istället få problem med timeout.
Ang. väntan så kan du direkt börja med nästa anrop när första returnerar.
Micke Prag
Software
Telldus Technologies
Software
Telldus Technologies
Re: Är Telldus APIet trådsäkert?
Min mag-gropskänsla (kan man säga så?) är att Telldus Service svarar mycket säkrare och snabbare nu än någonsin tidigare.
Åtminstone när jag skickar kommandon från EventGhost så fungerar allting mycket bra. Jag kan sända som en tokig utan att jag ser några retries (vilket ofta förekom tidigare om man sände många kommandon snabbt efter varandra) , allting verkar köa upp sig snyggt och prydligt.
mvh Walter
Åtminstone när jag skickar kommandon från EventGhost så fungerar allting mycket bra. Jag kan sända som en tokig utan att jag ser några retries (vilket ofta förekom tidigare om man sände många kommandon snabbt efter varandra) , allting verkar köa upp sig snyggt och prydligt.
mvh Walter
Re: Är Telldus APIet trådsäkert?
När du skriver att ert API består av två delar, vad menar du mer specifikt då? På er Trac på http://developer.telldus.se/ står det "Telldus provides two different APIs for access". Är det dessa du refererar till? Isåfall är det ena telldus-core och det andra Telldus Live? Eller menar du att telldus-core består av en service (/etc/init.d/telldusd start|stop|restart) och ett klientlib (libtelldus-core.so), och att detta bör anses trådsäkert? Vad är isåfall icke-trådsäkert?micke.prag wrote:Vårt api består av två delar (fr.o.m. version 2.1). En service och ett klientbibliotek. Servicen garanterar vi tråd- och processäkerhet eftersom flera applikationer ska kunna använda APIt samtidigt.
Vi garanterar inte trådsäkerhet i klientbiblioteket utan det bör du lösa själv i ditt program. En snabb koll på koden så delar dock inte två tdTurnOn() anrop samma resurser så det bör inte vara några problem att ha två anrop samtidigt.
Om du köar upp för många anrop på en gång och anropen tar tid kan du istället få problem med timeout.
Ang. väntan så kan du direkt börja med nästa anrop när första returnerar.

Nu blev det lite förvirrat här, jag kollrar väl bort mig som vanligt...
Tack för svar!
Det du pratar om är Telldus Live? Eller?krambriw wrote:Min mag-gropskänsla (kan man säga så?) är att Telldus Service svarar mycket säkrare och snabbare nu än någonsin tidigare.
Åtminstone när jag skickar kommandon från EventGhost så fungerar allting mycket bra. Jag kan sända som en tokig utan att jag ser några retries (vilket ofta förekom tidigare om man sände många kommandon snabbt efter varandra) , allting verkar köa upp sig snyggt och prydligt.
mvh Walter
Re: Är Telldus APIet trådsäkert?
Nej, jag menar Telldus Service som körs under Windows så jag antar det är telldus-coreDet du pratar om är Telldus Live? Eller?
mvh
-
- Site Admin
- Posts: 2243
- Joined: Fri Mar 17, 2023 9:45 am
- Location: Lund
- Contact:
Re: Är Telldus APIet trådsäkert?
Jag pratar inte om Telldus Live! utan endast telldus-core (telldusd + libtelldus-core.so).
Micke Prag
Software
Telldus Technologies
Software
Telldus Technologies
Re: Är Telldus APIet trådsäkert?
Okej, och vad är det du kallar "klientdel" som inte är trådsäker? Är det libtelldus-core.so-funktionerna (tdTurnOn, tdTurnOff, tdDim, etc)? Som jag fattat det använder libtelldus-core.so tjänsten telldusd för att exekvera kommandona, men det kan jag ha fattat fel.micke.prag wrote:Jag pratar inte om Telldus Live! utan endast telldus-core (telldusd + libtelldus-core.so).
-
- Site Admin
- Posts: 2243
- Joined: Fri Mar 17, 2023 9:45 am
- Location: Lund
- Contact:
Re: Är Telldus APIet trådsäkert?
telldusd = service som alltid är igång
libtelldus-core.so, TelldusCore.dll och TelldusCore.framework = klient som applikationer länkar mot.
libtelldus-core.so, TelldusCore.dll och TelldusCore.framework = klient som applikationer länkar mot.
Micke Prag
Software
Telldus Technologies
Software
Telldus Technologies
Re: Är Telldus APIet trådsäkert?
Det är uppfattat. Jag trodde att det funkade så här:
tdTurnOn()/tdDim()/etc -> libtelldus-core.so -> telldusd -> TellStick
Alltså att klientlibbet utför kommandon genom att anropa tjänsten (och att tjänsten sedan utför dem mot TellSticken). Som jag förstår dig nu går tdTurnOn() och de anropen som finns i libtelldus-core.so direkt mot TellStick:en, och telldusd är någonting annat? Hur använder jag som utvecklare telldusd?
Det om förvirrar mig är det här:
Tack för alla svar!
tdTurnOn()/tdDim()/etc -> libtelldus-core.so -> telldusd -> TellStick
Alltså att klientlibbet utför kommandon genom att anropa tjänsten (och att tjänsten sedan utför dem mot TellSticken). Som jag förstår dig nu går tdTurnOn() och de anropen som finns i libtelldus-core.so direkt mot TellStick:en, och telldusd är någonting annat? Hur använder jag som utvecklare telldusd?
Det om förvirrar mig är det här:
Det låter som att jag kan välja mellan att använda tjänsten, som är trådsäker, eller klientbiblioteket som inte är trådsäkert. Var finns dokumentation om tjänsten (jag letade på http://developer.telldus.se/, hittade inget)?micke.prag wrote:Vårt api består av två delar (fr.o.m. version 2.1). En service och ett klientbibliotek. Servicen garanterar vi tråd- och processäkerhet eftersom flera applikationer ska kunna använda APIt samtidigt.
Tack för alla svar!
-
- Site Admin
- Posts: 2243
- Joined: Fri Mar 17, 2023 9:45 am
- Location: Lund
- Contact:
Re: Är Telldus APIet trådsäkert?
Det stämmer, det fungerar precis så.jeinor wrote:Jag trodde att det funkade så här:
tdTurnOn()/tdDim()/etc -> libtelldus-core.so -> telldusd -> TellStick
Micke Prag
Software
Telldus Technologies
Software
Telldus Technologies
Re: Är Telldus APIet trådsäkert?
Okej, och libtelldus-core.so är inte trådsäkert, men tjänsten är trådsäker? Alltså, om jag i samma applikationer använder tdTurnOn() (eller motsvarande anrop) samtidigt från flera olika trådar KAN det bli problem, men flera applikationer kan var och en för sig anropa olika td-funktioner utan att det blir synkroniseringsproblem. När anropen väl anländer till tjänsten är det lungt, så att säga?
-
- Site Admin
- Posts: 2243
- Joined: Fri Mar 17, 2023 9:45 am
- Location: Lund
- Contact:
Re: Är Telldus APIet trådsäkert?
Precis.jeinor wrote: Alltså, om jag i samma applikationer använder tdTurnOn() (eller motsvarande anrop) samtidigt från flera olika trådar KAN det bli problem, men flera applikationer kan var och en för sig anropa olika td-funktioner utan att det blir synkroniseringsproblem.
Dock som jag sa så delas inga resurser i ett tdTurnOn() anrop i den aktuella versionen. Så du kan anropa på. Dock är det inget vi garanterar för kommande versioner. Därav rekommenderade jag dig att bygga in eget lås.
Ja, annars ska det behandlas som en bugg.jeinor wrote:När anropen väl anländer till tjänsten är det lungt, så att säga?
Micke Prag
Software
Telldus Technologies
Software
Telldus Technologies