Что, если попробовать вынести жрущий память код в отдельную функцию?
def memoryEater():
"""eats memory"""
request = session.get(link).text
html = BeautifulSoup(request, "html.parser")
return html.select(".projects .proj")[0].select("h2 a")[0]["href"] #finding link of last project for save
def checkNewProjects(link, last_project, timeout, config, session):
"""Function for check new projects and for restarting timer event"""
time.sleep(timeout)#Wait pause before start parsing
print("Checking projects")
if last_project == "": #It is first launch of function. Need only find last project.
last_project = memoryEater()
checkNewProjects(link, last_project, timeout, config, session)
return