send instructions to blender from external application
You could poll a file with instructions or use sockets (for remote networks) or something else from pythons interprocess communication.

Using a file could be quite simple, the basic idea is to execute the statements in a loop:

Process A                           Process B(lender)
------------------------------------------------------
                                    File exists No -&gt; sleep    
Create file with instructions       
                                    File exists Yes -&gt; read and execute statements
Does file still exist Yes -&gt;sleep
                                    After execution delete file


While Process-A just needs to print some lines in a text file like:

import,file1.obj
import,file2.obj
import,file3.obj
cancel,none


The Blender side could be timer operator (based on the build in template) it actually reads the commands from the file (the last command 'cancel' deletes the file and stops the timer):

import bpy
import os.path

class ModalTimerOperator(bpy.types.Operator):
    """Operator which runs its self from a timer"""
    bl_idname = "wm.modal_timer_operator"
    bl_label = "Modal Timer Operator"

    _timer = None
    filename='C:\\dev\\command.txt'

    def modal(self, context, event):
        if event.type == 'TIMER':
            if os.path.isfile(self.filename):
                for line in open(self.filename):
                    line=line.rstrip("\n")
                    cmd,arg = line.split(",")
                    if cmd == 'import':
                        print('import requested file=%s' % arg )
                    elif cmd == 'cancel':
                        self.cancel( context )
                    else:
                        print('unknown request=%s arg=%s' % (cmd,arg))
                os.remove( self.filename )
                print('command file removed')
            else:
                print('waiting for command file=%s' % self.filename )

        return {'PASS_THROUGH'}

    def execute(self, context):
        wm = context.window_manager
        self._timer = wm.event_timer_add(5, context.window)
        wm.modal_handler_add(self)
        return {'RUNNING_MODAL'}

    def cancel(self, context):
        wm = context.window_manager
        wm.event_timer_remove(self._timer)
        print('timer removed')

def register():
    bpy.utils.register_class(ModalTimerOperator)


def unregister():
    bpy.utils.unregister_class(ModalTimerOperator)


if __name__ == "__main__":
    register()

    # test call
    bpy.ops.wm.modal_timer_operator()