old_contents: #!/usr/bin/env python
  import os
  from app import create_app, db
  from app.models import User, Follow, Role, Permission, Post, Comment
  from flask_script import Manager, Shell
  from flask_migrate import Migrate, MigrateCommand
  
  app = create_app(os.getenv('FLASK_CONFIG') or 'default')
  manager = Manager(app)
  migrate = Migrate(app, db)
  
  
  def make_shell_context():
      return dict(app=app, db=db, User=User, Follow=Follow, Role=Role,
                  Permission=Permission, Post=Post, Comment=Comment)
  manager.add_command("shell", Shell(make_context=make_shell_context))
  manager.add_command('db', MigrateCommand)
  
  
  @manager.command
  def test():
      """Run the unit tests."""
      import unittest
      tests = unittest.TestLoader().discover('tests')
      unittest.TextTestRunner(verbosity=2).run(tests)
  
  
  if __name__ == '__main__':
      manager.run()
  
new_contents: #!/usr/bin/env python
  import os
  import atexit
  from app import create_app, db
  from app.models import User, Follow, Role, Permission, Post, Comment
  from flask_script import Manager, Shell
  from flask_migrate import Migrate, MigrateCommand
  from apscheduler.schedulers.background import BackgroundScheduler
  from apscheduler.triggers.interval import IntervalTrigger
  
  app = create_app(os.getenv('FLASK_CONFIG') or 'default')
  manager = Manager(app)
  migrate = Migrate(app, db)
  
  
  def make_shell_context():
      return dict(app=app, db=db, User=User, Follow=Follow, Role=Role,
                  Permission=Permission, Post=Post, Comment=Comment)
  manager.add_command("shell", Shell(make_context=make_shell_context))
  manager.add_command('db', MigrateCommand)
  
  
  @manager.command
  def test():
      """Run the unit tests."""
      import unittest
      tests = unittest.TestLoader().discover('tests')
      unittest.TextTestRunner(verbosity=2).run(tests)
  
  def MLAPI():
      with app.app_context():
          User.ML()
  
  scheduler = BackgroundScheduler()
  scheduler.start()
  scheduler.add_job(
      func=MLAPI,
      trigger=IntervalTrigger(seconds=3600),
      replace_existing=True)
  # Shut down the scheduler when exiting the app
  atexit.register(lambda: scheduler.shutdown())
  
  if __name__ == '__main__':
      manager.run()
  
subject: add background task scheduler