63 líneas
1,3 KiB
Python
63 líneas
1,3 KiB
Python
|
from app.libraries.setup import Setup
|
||
|
from app.libraries.database import Database
|
||
|
from app.libraries.peers import Peers
|
||
|
from app.libraries.nodeinfo import Nodeinfo
|
||
|
import ray
|
||
|
|
||
|
ray.init(num_cpus = 25) # Specify this system CPUs.
|
||
|
|
||
|
@ray.remote
|
||
|
def peerapi(peer):
|
||
|
|
||
|
api = peers.getapi(peer) # get peer nodeinfo's URL
|
||
|
|
||
|
if api != '':
|
||
|
|
||
|
db.write_server(peer, api)
|
||
|
|
||
|
print(f'server: {peer}, api: {api}')
|
||
|
|
||
|
server_peers.remote(peer)
|
||
|
|
||
|
else:
|
||
|
|
||
|
db.write_deadserver(peer)
|
||
|
|
||
|
print(f'*** server: {peer}, api not found!')
|
||
|
|
||
|
@ray.remote
|
||
|
def server_peers(server):
|
||
|
|
||
|
peers_list = peers.getpeers(server) # check and get peers if available
|
||
|
|
||
|
if peers_list != None: # if peers list is available
|
||
|
|
||
|
print(f'\n{server}: {len(peers_list)} peers\n')
|
||
|
|
||
|
db.update_peer(server) #update peer
|
||
|
|
||
|
for peer in peers_list:
|
||
|
|
||
|
print(f'{server}({len(peers_list)}): checking peer {peer}...')
|
||
|
|
||
|
found = db.check_peer(peer)
|
||
|
|
||
|
if not found:
|
||
|
|
||
|
peerapi.remote(peer)
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
|
||
|
db = Database()
|
||
|
|
||
|
setup = Setup()
|
||
|
|
||
|
peers = Peers()
|
||
|
|
||
|
peers_list = peers.getpeers(setup.mastodon_hostname) #get peers from Mastodon host
|
||
|
|
||
|
if peers_list != None:
|
||
|
|
||
|
ray.get([peerapi.remote(peer) for peer in peers_list])
|
||
|
|