Rularea unui cod lung folosind API-ul facebook

Încerc să fac o aplicație care merge și face acțiuni pentru toți prietenii pe care le are utilizatorul aplicației. Problema este că nu am găsit încă o platformă pe care o pot dezvolta o astfel de aplicație. La început am încercat să folosesc PHP, am folosit heroku și codul meu a funcționat, dar pentru că am avut mulți prieteni, bucla a mers mai mult de 30 de secunde și cererea a expirat și operația sa oprit în mijlocul acțiunii. Nu mă deranjează să folosesc orice platformă pe care vreau doar să funcționeze! Python, C ++, PHP. Toți sunt bine pentru mine. Mulțumesc anticipat.

0

1 răspunsuri

Să începem cu faptul că puteți schimba setările de expirare, în funcție de locul în care este setată restricția, poate fi în PHP așa cum este explicat documentația funcției set_time_limit :

Stabiliți numărul de secunde în care un script este permis să ruleze. Dacă este așa   a atins, scriptul returnează o eroare fatală. Limita prestabilită este de 30   secunde sau, dacă există, valoarea max_execution_time definită în   php.ini.

but it can also be set on the server itself.
Another issue is that routers on the route also have their own timeout limit, so from my experience ~60 seconds is the max.

În ceea ce privește ceea ce vrei să faci, problema nu este limba/tehnologia pe care o folosești, ci faptul că faci o mulțime de solicitări de http pe Facebook, care iau puțin timp și cred că aceasta este problema ta, și dacă acest lucru este cazul, atunci nu puteți îmbunătăți multe prin alegerea altui lucru decât PHP (deși puteți merge cu NIO care ar trebui să îmbunătățească performanța IO).

With that said, PHP is not always the best solution, depends on the task at hand.
Java or any other compiled language should perform better than a scripted language (php, python), and if you go with C++ you will top 'em all, but will you feel comfortable to program your app in C++?

Alegeți limba/tehnologia la care vă simțiți cel mai mult la domiciliu, dacă aveți o selecție de alegere, atunci dați seama de ce aveți nevoie de la aplicația dvs. și apoi cercetați care va funcționa mai bine pentru ceea ce aveți nevoie.


Editați | ×

Last time I checked the maximum number of friends was limited to 5000.
If you need to to run a graph request per user friend then there's simply no way that you can do that without keeping the user waiting for way too long, regardless of timeouts.

Aveți două opțiuni pe măsură ce le văd:

  1. Make the client asynchronous, you can use web sockets, comet, or even issue an ajax request every x seconds to get the computed data.
    That way you don't need to worry about timeouts and the user can start getting content quickly.

  2. Use the JavaScript api to make the graph requests, that way you completely avoid timing out, plus you reduce a huge amount of networking from your servers.
    This option might not be available for you if you need your servers for the computation, if for example you depend on data from your db.

As for the "no facebook SDK for C++" issue, though I don't think it's even relevant, it's not a problem.
All facebook SDKs are simply wrappers for https request, so implementing your own SDK is not that hard, though I hate thinking about doing it with C++, but then again I hate thinking about doing anything with C++.

0
adăugat
Problema este că nu pot folosi facebook SDK cu C ++ din păcate. De asemenea, site-ul care găzduiește codul limitează max_execution_time la 30 secunde .. :(
adăugat autor Aviram, sursa
În primul rând, vă mulțumim pentru ajutor. Problema nu este încărcarea prietenilor, ci scrierea pe fiecare perete de prieteni ceva. Cum pot face clientul asincron? Aveți vreun exemplu? Sunt destul de nou în rețea și PHP și tot ceea ce reușesc să realizez este prin cunoașterea mea în alte limbi.
adăugat autor Aviram, sursa
Editat răspunsul meu, a fost prea lung pentru un comentariu
adăugat autor Nitzan Tomer, sursa
PHP România, Moldova
PHP România, Moldova
173 participanți

Vorbim despre Yii, Laravel, Symphony, MySQL, PgSQL, WP, OpenCart... Pentru confort, opriți notificările. Parteneri: https://ciupacabra.com @js_ro @node_ro @python_ro @seo_ro @Romania_Bot Offtop: @holywars_ro Joburi: @php_job @Grupuri_IT

Python România
Python România
100 participanți

Comunitatea pasionaților de Python din România.